Verilənlər bazasında indeksin sorğunu yerinə yetirmək üçün istifadə olunmamasına səbəb ola biləcək səbəblər hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Veritabanında indeks bir neçə səbəbdən sorğu icra etmək üçün istifadə olunmaya bilər:
-
Aşağı seçicilik indeksi: əgər indeks çox təkrarlanan dəyərləri əhatə edən sütunları əhatə edirsə, optimizator tam cədvəl skanını daha sürətli hesab edə bilər.
-
İndeksli sütun üzərində funksiyalar və ya əməliyyatların istifadəsi: məsələn, sütun üzərində funksiya çağırılması (
WHERE LOWER(name) = 'john') indeksin istifadəsini əngəlləyə bilər. -
İndeks tərəfindən əhatə olunmayan şərtlərlə sorğu: əgər sorğu indeksə daxil olmayan sütunlardan istifadə edirsə və ya şərtlər indeksin quruluşuna uyğun deyilsə.
-
Kiçik cədvəl ölçüsü: kiçik cədvəllər üçün optimizator tam skan seçə bilər, çünki bu daha sürətlidir.
-
Statistikaların olmaması və ya köhnəlmiş statistikalar: optimizator statistikalar əsasında qərar verir; əgər onlar aktual deyilsə, indeks istifadə olunmaya bilər.
-
LIKE operatorundan istifadə, şablon '*' ilə başlayırsa (
LIKE '%abc'), bu indeksin istifadəsini əngəlləyir. -
OR ilə sorğular, onlar effektiv şəkildə indekslə əhatə oluna bilməz.
Bu səbəbləri anlamaq sorğuların və indekslərin quruluşunun optimallaşdırılmasına kömək edir.