A számítástechnikában az adatbázisokban az index egy olyan adatstruktúra, amelyet az adatbázis-kezelő rendszer (DBMS) használ és tart fenn annak érdekében, hogy gyorsan megtalálja az adatokat. Az index használata megkönnyíti és felgyorsítja a DBMS által végzett keresési, rendezési, összekapcsolási vagy összesítési műveleteket.
A táblára helyezett index lehetővé teszi a DBMS számára, hogy nagyon gyorsan elérje a rekordokat, egy vagy több mező értékétől függően .
Az index egy automatikusan karbantartott struktúra, amely megkönnyíti a fájlokban lévő rekordok megkeresését. Az indexek használata a következő megfigyelésen alapul: könyv megtalálása a könyvtárban ahelyett, hogy minden könyvet egyenként vizsgálna (ami megfelel egy szekvenciális keresésnek ), gyorsabb a katalógusban történő keresés , ahol témák szerint vannak osztályozva, szerző és cím. Az index minden bejegyzésének van egy értéke az adatokból és egy mutató az eredeti helyére. A felvétel így könnyen megtalálható, ha megkeresi a helyét az indexben.
Az index rendelhető, apróra vágott, sűrű vagy ritka:
Az elsődleges index Egy asztal az első, hogy használják, hogy keresse meg rekordokat. A táblázat az elsődleges index mellett másodlagos indexeket is tartalmazhat . Minden táblázat egy vagy több indexet tartalmazhat. Az index egyetlen mezőből származhat, vagy több mezőt is kombinálhat.
Az indexeket a DBMS számos művelethez használja. Az indexek megkönnyítik a válogatást, a keresést, a csoportosítást és a csatlakozást. Az index leggyakoribb szerkezete a B-fa . Más struktúrák léteznek, de ritkán használják őket - ISAM , hash táblák vagy bitképek.
A műveletek felgyorsítása érdekében az indexfákat nagyon sok elágazással rendelkező blokkban rögzítik: A merevlemezek, amelyekre indexeket rögzítenek, több kilobájtos blokkokban olvassák az adatokat, és a blokk elolvasásához szükséges idő általában sokkal kevesebb, mint a a felkutatásához szükséges idő. Ezzel a konstrukcióval a rekord keresése több millió tételben csak 2 vagy 3 műveletet igényel.
Az indexek hozzáadhatók egy SQL paranccsal . Az indexek létfontosságúak az adatkezelési műveletek felgyorsításához. A csalódás legfőbb oka az indexek nem megfelelő használata. Az adatbázis-kezelő rendszer (röviden DBMS) nem fogja megtalálni azokat az indexeket, amelyek szükségesek a tőle kért műveletek hatékony végrehajtásához. A nem megfelelő használat oka az, hogy az indexek használatával kapcsolatos DBMS-dokumentáció gyakran homályos és tömör, és inkább hátrányaikat hangsúlyozza, mint előnyeiket.
Az indexeket különösen a lekérdezés-optimalizáló használja :
Adatbázis rekord beillesztésekor vagy frissítésekor a teljesítmény enyhe romlása tapasztalható: a DBMS-nek valóban frissítenie kell az indexeket, hogy azok továbbra is tükrözzék a rekordok állapotát. Emiatt arra törekszünk, hogy az adatbázis tervezésénél csak azokat az indexeket határozzuk meg, amelyeket a rendszer használni fog. Ezeket ráadásul csak a rendszer (és különösen az adatbázis-lekérdezési mechanizmusok) elemzésével lehet jól azonosítani annak optimalizálása céljából.
Más típusú struktúrák indexelési funkciókat kínálnak:
Többoszlopos index esetén a DBMS "eldöntheti", hogy részben használja-e, az index oszlopainak sorrendjében. Más szavakkal, az oszlopok indexe (c1, c2, c3, c4) használható indexként (c1, c2, c3), (c1, c2) vagy (c1).