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_costqiymati 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.