Sobes.tech
Junior — Middle

PostgreSQL-in müəyyən bir sahədə axtarış edərkən indeks istifadə etməməsinə nə səbəb ola bilər?

sobes.tech Süni İntellekt

AI-dan cavab

PostgreSQL müəyyən bir sahə üzrə axtarış zamanı indeksdən istifadə etməyə bilər, bunun bir neçə səbəbi var:

  • Axtarışın aşağı seçiciliyi: əgər axtarış şərti çox böyük faiz sətiri geri qaytarırsa, planlaşdırıcı daha səmərəli olduğu üçün ardıcıl skan etməyi seçə bilər.
  • İndeks ilə uyğun olmayan məlumat tipləri və ya əməliyyatlar: məsələn, indeks dəstəkləməyən funksiyalar və ya əməliyyatlar istifadə etmək (məsələn, LIKE '%pattern') və ya məlumat tiplərinin uyğun olmaması.
  • Statistikaların olmaması və ya köhnəlmiş statistikalar: əgər cədvəl statistikası yenilənməyibsə (ANALYZE), planlaşdırıcı yanlış qərar verə bilər.
  • İndeks ilə əhatə olunmayan ifadələrdən istifadə: məsələn, hesablanmış sahə üzərində axtarış, uyğun funksional indeks olmadan.
  • Konfiqurasiya parametrləri: məsələn, çox yüksək random_page_cost dəyəri plan seçimini təsir edə bilər.

Nümunə: əgər name sahəsində indeksiniz varsa, lakin sorğu WHERE LOWER(name) = 'abc' istifadə edirsə və indeks LOWER(name) üçün funksional deyilsə, indeks istifadə olunmayacaq.