Junior
Kokie yra duomenų bazių indeksų tipai?
sobes.tech AI
Atsakymas iš AI
Pagrindiniai duomenų bazių indeksų tipai:
-
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.
-
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).
-
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...AGAINSTMySQL/MariaDB,tsvector/tsqueryPostgreSQL.
-
Ergonominiai (R-medžio) indeksai:
- naudojami geografinių ar erdvinių duomenų indeksavimui.
- leidžia efektyviai rasti objektus tam tikroje srityje ar ribose.
-
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
ANDirORoperacijomis.
-
Klastrinis indeksas:
- veikia duomenų fizinį išsidėstymą.
- vienas klastrinis indeksas gali būti tik viename lentelėje.
- dažnai naudojamas pirminiam raktui.
-
Neklastrinis indeksas:
- ne nustato fizinio išsidėstymo.
- turi nuorodas į fizinį duomenų išsidėstymą.
- lentelėje gali būti keli neklausteriniai indeksai.
-
Apimančio (Covering) indeksas:
- indeksas, kuris apima visas užklausos reikalingas stulpelius, įskaitant
SELECTsąraše,WHEREsąlygose irORDER BY. - leidžia DB sistemai nepasiekti lentelės duomenų, tai pagreitina užklausos vykdymą.
- indeksas, kuris apima visas užklausos reikalingas stulpelius, įskaitant
-
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ą.