Sobes.tech
Junior — Middle

Mi okozhatja, hogy a PostgreSQL eltávolítja vagy kikapcsolja egy adott tábla vagy lekérdezés indexét?

sobes.tech MI

Válasz az MI-től

A PostgreSQL több okból is előfordulhat, hogy nem használ indexet egy adott lekérdezéshez vagy táblához:

  • Kis adatmennyiség: ha a tábla nagyon kicsi, a tervező dönthet úgy, hogy a szekvenciális átvizsgálás gyorsabb, mint az index használata.

  • Az index szelektivitása alacsony: ha az index nem csökkenti jelentősen a sorok számát (például sok ismétlődő érték esetén), a PostgreSQL elutasíthatja annak használatát.

  • Elavult vagy hiányzó statisztikák: ha a tábla statisztikái elavultak, a tervező rossz döntéseket hozhat.

  • Lekérdezés típusai és feltételek: bizonyos műveletek (pl. LIKE a kezdő mintával, függvények az indexelt oszlopokon) nem használhatják hatékonyan az indexet.

  • Konfigurációs beállítások: olyan beállítások, mint az enable_indexscan, kikapcsolhatják az indexek használatát.

  • Fragmentáció vagy index sérülése: ritkán, de hatással lehet.

Diagnosztizáláshoz ajánlott az EXPLAIN ANALYZE használata és a statisztikák frissítése az ANALYZE parancs segítségével.