Indexování zlepšuje výkon databáze tím, že minimalizuje počet návštěv disku nutných ke splnění dotazu. Je to technika datové struktury používaná k vyhledání a rychlému přístupu k datům v databázích. Ke generování indexů se používá několik databázových polí. Hlavní klíč nebo kandidátský klíč tabulky je duplikován v prvním sloupci, kterým je vyhledávací klíč. Pro urychlení načítání dat jsou hodnoty také udržovány v setříděném pořadí. Je třeba zdůraznit, že třídění dat není nutné. Druhý sloupec je odkaz na data nebo ukazatel, který obsahuje sadu ukazatelů obsahujících adresu bloku disku, kde lze nalézt konkrétní hodnotu klíče.
řetězec json java
Struktura indexu v databázi
Atributy indexování
- Typy přístupu: To se týká typu přístupu, jako je vyhledávání na základě hodnoty, přístup k rozsahu atd.
- Doba přístupu: Vztahuje se k času potřebnému k nalezení určitého datového prvku nebo sady prvků.
- Čas vložení: Vztahuje se na čas potřebný k nalezení vhodného prostoru a vložení nových dat.
- Čas smazání: Čas potřebný k nalezení položky a jejímu odstranění a také aktualizaci struktury indexu.
- Prostor nad hlavou: Odkazuje na další prostor požadovaný indexem.
Struktura indexu v databázi
Obecně existují dva typy mechanismů organizace souborů, které následují metody indexování pro ukládání dat:
Sekvenční organizace souborů nebo uspořádaný indexový soubor
V tomto jsou indexy založeny na seřazeném řazení hodnot. Jedná se obecně o rychlý a tradičnější typ mechanismu ukládání. Tyto uspořádané nebo sekvenční organizace souborů mohou ukládat data v hustém nebo řídkém formátu.
řetězení řetězců
- Hustý index
- Pro každou hodnotu vyhledávacího klíče v datovém souboru existuje záznam indexu.
- Tento záznam obsahuje vyhledávací klíč a také odkaz na první datový záznam s touto hodnotou vyhledávacího klíče.
Hustý index
- Řídký index
- Indexový záznam se zobrazí pouze pro několik položek v datovém souboru. Každá položka ukazuje na blok, jak je znázorněno.
- Abychom našli záznam, najdeme záznam indexu s největší hodnotou klíče hledání menší nebo rovnou hodnotě klíče hledání, kterou hledáme.
- Začneme u toho záznamu, na který ukazuje indexový záznam, a pokračujeme spolu s ukazateli v souboru (tj. postupně), dokud nenajdeme požadovaný záznam.
- Počet požadovaných přístupů=log₂(n)+1, (zde n=počet bloků získaných indexovým souborem)
Řídký index
Organizace hash souborů
Indexy jsou založeny na hodnotách, které jsou rovnoměrně rozloženy v rámci řady segmentů. Segmenty, kterým je přiřazena hodnota, jsou určeny funkcí nazývanou hashovací funkce. Primárně existují tři způsoby indexování:
- Seskupené indexování : Pokud jsou ve stejném souboru uloženy více než dva záznamy, tento typ ukládání se nazývá indexování clusteru. Použitím clusterové indexace můžeme snížit náklady na vyhledávání z důvodu, že více záznamů vztahujících se k téže věci je uloženo na jednom místě a také umožňuje časté spojování více než dvou tabulek (záznamů).
Index shlukování je definován na uspořádaném datovém souboru. Datový soubor je uspořádán v neklíčovém poli. V některých případech je index vytvořen na neprimárních klíčových sloupcích, které nemusí být jedinečné pro každý záznam. V takových případech, abychom záznamy rychleji identifikovali, seskupíme dva nebo více sloupců dohromady, abychom získali jedinečné hodnoty a vytvořili z nich index. Tato metoda je známá jako index shlukování. V zásadě se záznamy s podobnými vlastnostmi seskupují a vytvářejí se indexy pro tato seskupení.
Studenti studující každý semestr jsou například seskupeni. Studenti prvního semestru, studenti druhého semestru, studenti třetího semestru a tak dále jsou kategorizováni.
Seskupené indexování
- Primární indexování: Jedná se o typ Clustered Indexing, kde jsou data řazena podle vyhledávacího klíče a primární klíč databázové tabulky se používá k vytvoření indexu. Je to výchozí formát indexování tam, kde to vyvolává sekvenční organizace souborů . Protože primární klíče jsou jedinečné a jsou uloženy seřazeným způsobem, výkon vyhledávací operace je poměrně efektivní.
- Neklastrované nebo sekundární indexování : Neklastrovaný index nám pouze říká, kde data leží, tj. poskytuje nám seznam virtuálních ukazatelů nebo odkazů na umístění, kde jsou data skutečně uložena. Data nejsou fyzicky uložena v pořadí podle indexu. Místo toho jsou data přítomna v listových uzlech. Pro např. stránku s obsahem knihy. Každý záznam nám udává číslo stránky nebo umístění uložených informací. Skutečná data zde (informace na každé stránce knihy) nejsou uspořádána, ale máme uspořádaný odkaz (stránku s obsahem), kde datové body skutečně leží. V neshlukovaném indexu můžeme mít pouze husté řazení, protože řídké řazení není možné, protože data nejsou podle toho fyzicky uspořádána.
Vyžaduje to více času ve srovnání s seskupeným indexem, protože se provádí určité množství práce navíc, aby bylo možné extrahovat data dalším sledováním ukazatele. V případě seskupeného indexu jsou data přímo před indexem.

Indexování bez klastrů
- Víceúrovňové indexování: S růstem velikosti databáze rostou i indexy. Protože je index uložen v hlavní paměti, může být jednoúrovňový index příliš velký na to, aby jej bylo možné uložit s více přístupy na disk. Víceúrovňové indexování rozděluje hlavní blok do různých menších bloků, takže je lze uložit do jediného bloku. Vnější bloky jsou rozděleny na vnitřní bloky, které zase směřují na datové bloky. To lze snadno uložit do hlavní paměti s menší režií.
Víceúrovňové indexování
Výhody indexování
- Vylepšený výkon dotazu: Indexování umožňuje rychlejší získávání dat z databáze. Databáze může rychle odhalit řádky, které odpovídají konkrétní hodnotě nebo kolekci hodnot generováním indexu ve sloupci, čímž se minimalizuje doba potřebná k provedení dotazu.
- Efektivní přístup k datům: Indexování může zvýšit efektivitu přístupu k datům snížením množství diskových I/O potřebných k načtení dat. Databáze může udržovat datové stránky pro často navštěvované sloupce v paměti generováním indexu pro tyto sloupce, čímž se snižuje požadavek na čtení z disku.
- Optimalizované řazení dat: Indexování může také zlepšit výkon operací řazení. Vytvořením indexu na sloupcích používaných k řazení se databáze může vyhnout řazení celé tabulky a místo toho seřadit pouze relevantní řádky.
- Konzistentní výkon dat: Indexování může pomoci zajistit, aby databáze fungovala konzistentně, i když množství dat v databázi stoupá. Bez indexování může spuštění dotazů trvat déle, protože počet řádků v tabulce roste, zatímco indexování si udržuje zhruba konzistentní rychlost.
- Zajištěním toho, že do sloupců, které byly indexovány jako jedinečné, jsou vkládány pouze jedinečné hodnoty, lze indexování také využít k zajištění integrity dat. Tím se zabrání ukládání duplicitních dat v databázi, což by mohlo vést k problémům při provádění dotazů nebo sestav.
Celkově indexování v databázích poskytuje významné výhody pro zlepšení výkonu dotazů, efektivní přístup k datům, optimalizované třídění dat, konzistentní výkon dat a vynucenou integritu dat.
pole java
Nevýhody indexování
- Indexování vyžaduje více úložného prostoru pro uložení struktury dat indexu, což může zvýšit celkovou velikost databáze.
- Zvýšená režie údržby databáze: Indexy musí být udržovány při přidávání, ničení nebo úpravě dat v tabulce, což může zvýšit režii údržby databáze.
- Indexování může snížit výkon vkládání a aktualizace, protože datová struktura indexu musí být aktualizována při každé změně dat.
- Výběr indexu může být obtížný: Vybrat správné indexy pro konkrétní dotaz nebo aplikaci může být náročné a může vyžadovat podrobné prozkoumání dat a vzorců přístupu.
Vlastnosti indexování
- Rozvoj datových struktur, jako je kupř B-stromy nebo Nejdůležitější sloupce pro indexování sloupců jsou vybírány na základě toho, jak často jsou používány, a podle druhů dotazů, kterým jsou vystaveny. The mohutnost lze vzít v úvahu selektivitu a jedinečnost indexovacích sloupců.
- Existuje několik různých typů indexů používaných databázemi, včetně primárních, sekundárních, seskupených a neklastrovaných indexů. Na základě konkrétních potřeb databázového systému nabízí každá forma indexu výhody a nevýhody.
- Aby databázový systém fungoval co nejlépe, je nutná pravidelná údržba indexu. Podle změn v datech a vzorcích používání zahrnuje údržba vytváření, aktualizaci a odstraňování indexů.
- Optimalizace databázových dotazů zahrnuje indexování, které je nezbytné. Optimalizátor dotazů využívá indexy k výběru nejlepší strategie provádění pro konkrétní dotaz na základě nákladů na přístup k datům a selektivity indexovacích sloupců.
- Databáze využívají řadu strategií indexování, včetně pokrytí indexů, prohledávání pouze indexů a částečných indexů. Tyto techniky maximalizují využití indexů pro konkrétní typy dotazů a přístup k datům.
- Když jsou v indexu uloženy nesouvislé datové bloky, může to vést k fragmentaci indexu, což snižuje efektivitu indexu. Pravidelná údržba indexu, jako je defragmentace a reorganizace, se může snížit fragmentace .
Závěr
Indexování je velmi užitečná technika, která pomáhá při optimalizaci doby vyhledávání v databáze dotazy. Tabulka indexování databáze se skládá z vyhledávacího klíče a ukazatel . Existují čtyři typy indexování: Primární, Sekundární Clustering a Vícehodnotové indexování. Primární indexování se dělí na dva typy, husté a řídké. Husté indexování se používá, když indexová tabulka obsahuje záznamy pro každý vyhledávací klíč. Řídké indexování se používá, když indexová tabulka nepoužívá vyhledávací klíč pro každý záznam. Víceúrovňové indexování používá B+ strom . Hlavním účelem indexování je poskytnout lepší výkon při načítání dat.
Časté dotazy k indexování
Q.1: Co je indexování v databázích?
Odpovědět:
Indexování je v zásadě technika, která pomáhá zkrátit dobu vyhledávání databázového dotazu nebo pomáhá při rychlejším přístupu k databázi.
čtvrtletí v podnikání
Q.2: Jaké jsou příklady indexování databází?
Odpovědět:
Některé běžné příklady indexovacích databází jsou Web of Science, DOAJ (adresář časopisů s otevřeným přístupem)
Další podrobnosti naleznete na Úvod do B+ Tree a Typy klíčů v databázi článek.