Sobes.tech
Junior

Aké typy indexov existujú v databázach?

sobes.tech AI

Odpoveď od AI

Hlavné typy indexov v databázach:

  1. B-strom (B+ strom):

    • Najbežnejší typ.
    • Vhodný pre širokú škálu operácií: vyhľadávanie v rozsahu, presná zhoda, zoradenie.
    • Predvolene sa používa v mnohých RDBMS (MySQL, PostgreSQL, Oracle).
  2. Hash indexy:

    • Založené na hash tabuľke.
    • Veľmi rýchle pre vyhľadávanie podľa presnej hodnoty (=).
    • Nie sú vhodné pre vyhľadávanie v rozsahu (BETWEEN, <, >), zoradenie (ORDER BY) alebo vyhľadávanie podľa vzoru (LIKE).
  3. Fulltextové indexy:

    • Určené na vyhľadávanie v texte v textových poliach (BLOB, TEXT).
    • Umožňujú vyhľadávanie slov alebo fráz, zohľadňujú synonymá a morfologickú analýzu.
    • Príklady: MATCH...AGAINST v MySQL/MariaDB, tsvector/tsquery v PostgreSQL.
  4. Priestorové indexy (R-tree):

    • Používajú sa na indexovanie geografických alebo priestorových dát.
    • Umožňujú efektívne nájdenie objektov v určitej oblasti alebo hraniciach.
  5. Bitmap (bitová mapa):

    • Používa sa v niektorých RDBMS (napr. Oracle, PostgreSQL).
    • Vhodný pre polia s nízkou kardinalitou (malé množstvo unikátnych hodnôt, napr. pohlavie, stav: aktívny/neaktívny).
    • Môže byť veľmi efektívny pre zložité dotazy s operáciami AND a OR.
  6. Klastrovaný index:

    • Ovplyvňuje fyzické usporiadanie dát v tabuľke.
    • V tabuľke môže byť len jeden klastrovaný index.
    • Často sa používa pre primárny kľúč.
  7. Neklastrorvaný index:

    • Neurčuje fyzické usporiadanie riadkov.
    • Obsahuje ukazovatele na fyzické umiestnenie riadkov dát.
    • Tabuľka môže mať viacero neklausterizovaných indexov.
  8. Pokryvajúci index:

    • Index, ktorý obsahuje všetky stĺpce potrebné na vykonanie dotazu, vrátane stĺpcov v zozname SELECT, podmienkach WHERE a ORDER BY.
    • Umožňuje RDBMS-u neobrátiť sa na tabuľkové dáta, čo zrýchľuje vykonanie dotazu.
  9. Funkčný (index podľa výrazu):

    • Index vytvorený na základe výsledku funkcie alebo výrazu nad jednou alebo viacerými stĺpcami.
    • Umožňuje indexovanie vypočítaných hodnôt.

Pri výbere typu indexu sa zohľadňuje typ dát, frekvencia a charakter dotazov (vyhľadávanie podľa presnej hodnoty, rozsahu, zoradenie, fulltextové vyhľadávanie atď.) a kardinalita stĺpca.