Sobes.tech
Junior

Milyen esetekben használják az indexeket az adatbázisokban?

sobes.tech MI

Válasz az MI-től

Az adatbázisokban az indexek a lekérdezések végrehajtási sebességének optimalizálására szolgálnak, különösen:

  • Adatkeresés: A SELECT műveletek gyorsítására, különösen a WHERE, JOIN és ORDER BY feltételekkel. Az index lehetővé teszi az adatbázis-kezelő rendszer (DBMS) számára, hogy gyorsabban megtalálja a szükséges sorokat anélkül, hogy az egész táblát átvizsgálná.
  • Rendezés: A rendezés gyorsítása ORDER BY segítségével. Ha a rendezési oszlopok indexelve vannak, a DBMS használhatja azokat, elkerülve a további rendezési műveleteket.
  • Táblák összekapcsolása: Az indexelt oszlopokon végzett JOIN műveletek gyorsítása. Az index segít gyorsan megtalálni a kapcsolódó táblák megfelelő sorait.
  • Adatok egyedisége: A oszlop értékeinek egyedisége garantált (egyedi index segítségével).
  • Elsődleges kulcsok: Az elsődleges kulcs alapértelmezés szerint egy egyedi index, amely gyors hozzáférést biztosít az egyedi azonosítóval rendelkező sorhoz.
  • Másodlagos kulcsok: Azok a kulcsok, amelyek a hivatkozási integritás biztosítására és a JOIN műveletek gyorsítására szolgálnak a kapcsolódó táblák között.

Indexelhető oszlopok példái:

  • Gyakran keresett oszlopok (WHERE uid = 123).
  • JOIN feltételeiben használt oszlopok (table1.id = table2.ref_id).
  • Gyakran rendezett oszlopok (ORDER BY created_at DESC).
  • Magas kardinalitású oszlopok (sok egyedi érték).

Olyan esetek, amikor az indexek nem hatékonyak vagy nem szükségesek:

  • Nagyon kicsi táblák: Kis táblák esetén a szkennelés gyorsabb lehet, vagy összehasonlítható a indexes kereséssel.
  • Alacsony kardinalitású oszlopok: Egy oszlop indexelése kevés egyedi értékkel (pl. igaz/hamis boolean mező) nem hoz jelentős gyorsulást.
  • Gyakori írási műveletek (INSERT, UPDATE, DELETE): Az indexek frissítést igényelnek az adatok módosításakor, ami lassíthatja az írási műveleteket. Nem ajánlott minden oszlopot véletlenszerűen indexelni.
  • WHERE feltételek függvényekkel: Ha egy függvényt alkalmazunk az oszlopon a WHERE-ben (pl. WHERE YEAR(date_column) = 2023), akkor a normál index a date_column-on nem használható. Funkcionális indexek szükségesek lehetnek (ha a DBMS támogatja), vagy a lekérdezést át kell írni.