Sobes.tech
Junior

Kokie yra duomenų bazių indeksų tipai?

sobes.tech AI

Atsakymas iš AI

Pagrindiniai duomenų bazių indeksų tipai:

  1. B-medis (B+medis):

    • dažniausiai naudojamas tipas.
    • tinka plačiam operacijų spektrui: diapazono paieškai, tiksliam atitikimui, rūšiavimui.
    • dažnai naudojamas daugelyje DB valdymo sistemų (MySQL, PostgreSQL, Oracle) kaip numatytasis.
  2. Hash indeksai:

    • pagrįsti hash lentelėmis.
    • labai greiti tikslios atitikimo paieškai (=).
    • netinka diapazono paieškai (BETWEEN, <, >), rūšiavimui (ORDER BY) ar šablono paieškai (LIKE).
  3. Viso teksto indeksai:

    • skirti tekstinėse srityse paieškai (BLOB, TEXT).
    • leidžia ieškoti žodžių ar frazių, atsižvelgti į sinonimus ir atlikti morfologinę analizę.
    • pavyzdžiai: MATCH...AGAINST MySQL/MariaDB, tsvector/tsquery PostgreSQL.
  4. Ergonominiai (R-medžio) indeksai:

    • naudojami geografinių ar erdvinių duomenų indeksavimui.
    • leidžia efektyviai rasti objektus tam tikroje srityje ar ribose.
  5. Bitų žemėlapis (Bitmap):

    • naudojamas kai kuriose DB valdymo sistemose (pvz., Oracle, PostgreSQL).
    • tinkamas mažos kardinalumo srityse (mažas unikalių reikšmių skaičius, pvz., lytis, statusas: aktyvus/neaktyvus).
    • gali būti labai efektyvus sudėtingiems užklausoms su AND ir OR operacijomis.
  6. Klastrinis indeksas:

    • veikia duomenų fizinį išsidėstymą.
    • vienas klastrinis indeksas gali būti tik viename lentelėje.
    • dažnai naudojamas pirminiam raktui.
  7. Neklastrinis indeksas:

    • ne nustato fizinio išsidėstymo.
    • turi nuorodas į fizinį duomenų išsidėstymą.
    • lentelėje gali būti keli neklausteriniai indeksai.
  8. Apimančio (Covering) indeksas:

    • indeksas, kuris apima visas užklausos reikalingas stulpelius, įskaitant SELECT sąraše, WHERE sąlygose ir ORDER BY.
    • leidžia DB sistemai nepasiekti lentelės duomenų, tai pagreitina užklausos vykdymą.
  9. Funkcinis (pagal išraišką) indeksas:

    • indeksas, sukurtas pagal funkcijos ar išraiškos rezultatą viename ar keliuose stulpeliuose.
    • leidžia indeksuoti skaičiuojamas reikšmes.

Pasirenkant indekso tipą, atsižvelgiama į duomenų tipą, dažnumą ir užklausų pobūdį (tiksli reikšmės paieška, diapazonas, rūšiavimas, pilnas tekstas ir kt.) ir stulpelio kardinalumą.