Junior
Jaké typy indexů existují v databázích?
sobes.tech AI
Odpověď od AI
Hlavní typy indexů v databázích:
-
B-strom (B+strom):
- Nejrozšířenější typ.
- Vhodný pro širokou škálu operací: vyhledávání v rozsahu, přesná shoda, třídění.
- Výchozí v mnoha SGBD (MySQL, PostgreSQL, Oracle).
-
Hashové indexy:
- Na základě hash tabulky.
- Velmi rychlé pro hledání přesné shody (
=). - Nevhodné pro hledání v rozsahu (
BETWEEN,<,>), třídění (ORDER BY) nebo hledání podle vzoru (LIKE).
-
Indexy plného textu:
- Určené pro hledání v textových polích (BLOB, TEXT).
- Umožňují hledat slova nebo fráze, zohledňovat synonyma a provádět morfologickou analýzu.
- Příklady:
MATCH...AGAINSTv MySQL/MariaDB,tsvector/tsqueryv PostgreSQL.
-
Prostorové indexy (R-strom):
- Používají se pro indexaci geografických nebo prostorových dat.
- Umožňují efektivně najít objekty v určité oblasti nebo limitech.
-
Bitmapové indexy:
- Používají se v některých SGBD (např. Oracle, PostgreSQL).
- Vhodné pro pole s nízkou kardinalitou (málo unikátních hodnot, např. pohlaví, stav: aktivní/neaktivní).
- Mohou být velmi efektivní pro složité dotazy s operacemi
ANDaOR.
-
Klastry (clustered):
- Ovlivňuje fyzické uspořádání datových řádků.
- V tabulce může být pouze jeden klastr (clustered) index.
- Často se používá pro primární klíč.
-
Ne-klastr (non-clustered):
- Neurčuje fyzické pořadí řádků.
- Obsahuje ukazatele na fyzické umístění datových řádků.
- Tabulka může mít více ne-klastr indexů.
-
Pokryvný index (covering):
- Index, který obsahuje všechny sloupce potřebné k vykonání dotazu, včetně sloupců v
SELECT, podmínek vWHEREaORDER BY. - Umožňuje SGBD, aby se vyhnulo přístupu k datům tabulky, což urychluje vykonání dotazu.
- Index, který obsahuje všechny sloupce potřebné k vykonání dotazu, včetně sloupců v
-
Funkční index (podle výrazu):
- Index postavený na výsledku funkce nebo výrazu nad jedním nebo více sloupci.
- Umožňuje indexovat vypočítané hodnoty.
Při výběru typu indexu se zohledňuje typ dat, frekvence a povaha dotazů (vyhledávání podle přesné hodnoty, rozsahu, třídění, fulltextové vyhledávání atd.) a kardinalita sloupce.