Junior
Ce tipuri de indecși există în bazele de date?
sobes.tech AI
Răspuns de la AI
Tipurile principale de indici în bazele de date:
-
B-tree (B+tree):
- Cel mai răspândit tip.
- Potrivit pentru o gamă largă de operații: căutare pe interval, potrivire exactă, sortare.
- Folosit implicit în multe SGBD (MySQL, PostgreSQL, Oracle).
-
Indici hash:
- Bazat pe o tabelă hash.
- Foarte rapid pentru căutări după potrivire exactă (
=). - Nu sunt potriviți pentru căutări pe interval (
BETWEEN,<,>), sortare (ORDER BY) sau căutare după șablon (LIKE).
-
Indici de text complet:
- Destinați pentru căutări în câmpuri de text (BLOB, TEXT).
- Permite căutarea de cuvinte sau fraze, luarea în considerare a sinonimelor și efectuarea analizei morfologice.
- Exemple:
MATCH...AGAINSTîn MySQL/MariaDB,tsvector/tsqueryîn PostgreSQL.
-
Indici spațiali (R-tree):
- Folosiți pentru indexarea datelor geografice sau spațiale.
- Permite găsirea eficientă a obiectelor într-o anumită zonă sau limite.
-
Indici bitmap (hartă de biți):
- Folosit în unele SGBD (de exemplu, Oracle, PostgreSQL).
- Potrivit pentru câmpuri cu cardinalitate scăzută (puține valori unice, de exemplu, sex, stare: activ/inactiv).
- Poate fi foarte eficient pentru interogări complexe cu operații
ANDșiOR.
-
Index clusterizat:
- Influențează ordinea fizică de stocare a rândurilor din tabel.
- În tabel poate exista doar un index clusterizat.
- Adesea folosit pentru cheia primară.
-
Index neclusterizat:
- Nu determină ordinea fizică a rândurilor.
- Conține indicatoare către locația fizică a rândurilor de date.
- Un tabel poate avea mai multe indici neclusterizați.
-
Index acoperitor (covering):
- Un index care conține toate coloanele necesare pentru executarea unei interogări, inclusiv coloanele din
SELECT, condițiile dinWHEREșiORDER BY. - Permite SGBD-ului să nu acceseze datele tabelului, accelerând execuția interogării.
- Un index care conține toate coloanele necesare pentru executarea unei interogări, inclusiv coloanele din
-
Index funcțional (pe expresie):
- Index construit pe rezultatul unei funcții sau expresii asupra uneia sau mai multor coloane.
- Permite indexarea valorilor calculate.
La alegerea tipului de index, se ia în considerare tipul de date, frecvența și natura interogărilor (căutare după valoare exactă, interval, sortare, căutare full-text etc.) și cardinalitatea coloanei.