Index (adatbázis)

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 .

Elv

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.

Műszaki

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 :

Index típusok

A hatékonyság érdekében azonban megköveteli, hogy a DBMS közvetlenül hozzáférjen egy adott értékhez. Ezért csak olyan oszlopokra alkalmazható, amelyeknél az értékek száma korlátozott és sorrendben van.

Hatások a módosítás teljesítményére

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.

Az indexálás egyéb formái

Más típusú struktúrák indexelési funkciókat kínálnak:

Megjegyzés a több oszlopos indexekről

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

Megjegyzések és hivatkozások

  1. (en) Carlos Coronel, Steven Morris és Peter Rob, Adatbázis rendszerek: tervezés, megvalósítás és menedzsment , Cengage Learning - 2012, ( ISBN  9781111969608 )
  2. (en) SK Singh, Adatbázis-rendszerek: koncepciók, tervezés és alkalmazások , Pearson Education India - 2009, ( ISBN  9788177585674 )
  3. (en) Gavin Powell, Adatbázis-tervezés kezdete , John Wiley & Sons - 2006, ( ISBN  9780764574900 )
  4. (en) Tapio Lahdenmaki és Mike Leach, Relációs adatbázis-tervező és optimalizálók , John Wiley & Sons - 2005, ( ISBN  9780471721369 )
  5. (in) Ken Anglia, Gavin JT Powell, a Microsoft SQL Server 2005 Teljesítmény-optimalizálás és Tuning Handbook , Digital Press - 2011 ( ISBN  9780080554082 )

Külső linkek

Lásd is