🚀 Web hosting ultra-rapid de la doar 1€/lună!
HostPedia

Database Index

Baze de Date
Definiție

Un database index (index de bază de date) este o structură de date auxiliară care accelerează căutarea și sortarea datelor într-un tabel. Similar unui index de carte, permite bazei de date să găsească rânduri specifice fără a scana întregul tabel. Indexurile îmbunătățesc dramatic performanța interogărilor SELECT, dar adaugă overhead la operațiile de scriere.

Indexurile de bază de date sunt una dintre cele mai importante instrumente de optimizare a performanței disponibile administratorilor de baze de date și dezvoltatorilor web. Fără indexuri, orice căutare într-un tabel ar necesita scanarea completă a tuturor rândurilor (full table scan).

Conceptul de index este similar celui dintr-o carte. În loc să citești fiecare pagină pentru a găsi un subiect, consulți indexul care îți spune exact pe ce pagină se află. La fel, un index de bază de date creează o structură auxiliară (de obicei un arbore B-tree) care mapează valorile unei coloane la locația fizică a rândurilor corespunzătoare.

Există mai multe tipuri de indexuri. Indexul primar (PRIMARY KEY) este unic și identifică rândul. Indexuri unice (UNIQUE) garantează că nu există duplicate. Indexuri compuse combină mai multe coloane pentru interogări care filtrează pe multiple câmpuri. Indexuri de text complet (FULLTEXT) permit căutare eficientă în texte mari. Indexuri parțiale (în PostgreSQL) indexează doar un subset de rânduri.

Crearea indexurilor necesită o analiză atentă. Indicatorii care sugerează necesitatea unui index includ coloane folosite frecvent în clauze WHERE, coloane utilizate în JOIN-uri între tabele, coloane după care se sortează (ORDER BY) și coloane cu cardinalitate ridicată (multe valori distincte). Coloanele cu puține valori distincte (de exemplu, un câmp boolean) beneficiază mai puțin de indexare.

Dezavantajele indexurilor trebuie înțelese. Fiecare index ocupă spațiu pe disc și în memorie. Operațiile INSERT, UPDATE și DELETE devin mai lente deoarece indexurile trebuie actualizate. Un tabel cu prea multe indexuri poate avea performanță de scriere degradată. Regula generală este să creezi indexuri doar pentru coloanele frecvent interogate și să monitorizezi impactul lor cu instrumente precum EXPLAIN.