Sobes.tech
Junior — Middle

PostgreSQL ma'lum bir maydon bo'yicha qidiruvda indeksdan foydalanmasligiga nima olib kelishi mumkin?

sobes.tech AI

AIdan javob

PostgreSQL ma'lum bir maydon bo'yicha qidiruvda indeksdan foydalanmasligi mumkin, bu bir nechta sababga ko'ra:

  • So'rovning past tanlovchanligi: agar qidiruv sharti ko'p satrni qaytaradigan bo'lsa, rejalashtiruvchi ketma-ket skanerlashni tanlashi mumkin, chunki bu samaraliroq.
  • Indeks bilan mos kelmaydigan ma'lumotlar turlari yoki operatsiyalar: masalan, indeksni qo'llab-quvvatlamaydigan funksiyalar yoki operatsiyalarni ishlatish (masalan, LIKE '%pattern') yoki ma'lumotlar turlarining mos kelmasligi.
  • Statistikalar yo'qligi yoki eskirgan statistikalar: agar jadval statistikasi yangilanmagan bo'lsa (ANALYZE), rejalashtiruvchi noto'g'ri qaror qabul qilishi mumkin.
  • Indeks bilan qoplanmaydigan ifodalar ishlatilishi: masalan, hisoblangan maydon bo'yicha qidiruv, mos funksional indeks bo'lmasa.
  • Sozlash parametrlar: masalan, juda yuqori random_page_cost qiymati reja tanloviga ta'sir qilishi mumkin.

Misol uchun: agar sizda name maydonida indeks bo'lsa, lekin so'rov WHERE LOWER(name) = 'abc' ni ishlatsa va indeks LOWER(name) uchun funksional bo'lmasa, indeks ishlatilmaydi.