Ve vědě o počítačích , v databázích , An index je datová struktura používá a udržuje systém pro správu databází (DBMS), aby mohl rychle najít data. Použití indexu zjednodušuje a zrychluje operace vyhledávání, řazení, připojení nebo agregace prováděné systémem DBMS.
Index umístěn na stole umožní DBMS přístup k evidenci velmi rychle, v závislosti na hodnotě jednoho nebo více oborů .
Index je automaticky udržovaná struktura, která usnadňuje vyhledání záznamů v souboru. Použití rejstříků je založeno na následujícím pozorování: najít knihu v knihovně, místo toho, abyste každou knihu zkoumali jednu po druhé (což odpovídá postupnému vyhledávání ), je rychlejší nahlédnout do katalogu, kde jsou klasifikovány podle tématu, autor a název. Každá položka v indexu má hodnotu získanou z dat a ukazatel na své původní umístění. Záznam lze tedy snadno vyhledat vyhledáním jeho umístění v rejstříku.
Index lze objednat, nasekaný, hustý nebo řídký:
Primární index na stole je první index , který slouží k vyhledání záznamů. Tabulka může kromě primárního indexu obsahovat také sekundární indexy . Každá tabulka může mít jeden nebo více indexů. Index může pocházet z jednoho pole nebo může kombinovat několik polí.
Indexy používá DBMS pro mnoho operací. Indexy usnadňují třídění, hledání, seskupování a připojování. Nejběžnější strukturou indexu je B-strom . Jiné struktury existují, ale jsou zřídka používány - ISAM , hash tabulky nebo bitmapy.
Pro urychlení operací se indexové stromy zaznamenávají do bloku s velmi velkým počtem důsledků: Pevné disky, na které se zaznamenávají indexy, načítají data v blocích několika kilobajtů a doba potřebná ke čtení bloku je obvykle mnohem kratší než čas potřebný k jeho vyhledání. S touto konstrukcí vyžaduje hledání záznamu v dávce několika milionů pouze 2 nebo 3 operace.
Rejstříky lze přidat pomocí příkazu SQL . Existence indexů je zásadní pro urychlení operací manipulace s daty. Hlavní příčinou zklamání je nedostatečné používání indexů. Systém pro správu databází (zkráceně DBMS) nenajde indexy, které jsou nezbytné pro efektivní provedení operací, které jsou od něj požadovány. Důvody nedostatečného použití spočívají v tom, že dokumentace DBMS týkající se používání indexů je často vágní a stručná a zdůrazňuje spíše jejich nevýhody než jejich výhody.
Indexy používá zejména optimalizátor dotazů :
Při vkládání nebo aktualizaci záznamu databáze dochází k mírnému snížení výkonu: DBMS musí skutečně aktualizovat indexy tak, aby i nadále odrážely stav záznamů. Z tohoto důvodu se při navrhování databáze budeme snažit definovat pouze indexy, které bude systém používat. Ty budou navíc dobře identifikovány pouze analýzou systému (a zejména mechanismů dotazování databáze) s ohledem na jeho optimalizaci.
Další typy struktur nabízejí funkce indexování:
V případě vícesloupcového indexu se může systém DBMS „rozhodnout“ použít jej částečně, v pořadí podle sloupců indexu. Jinými slovy, index na sloupcích (c1, c2, c3, c4) lze použít jako index (c1, c2, c3), (c1, c2) nebo (c1).