Un index accelerează regăsirea datelor. Fără unul, baza de date scanează fiecare rând pentru a găsi înregistrări corespondente. Cu unul, sare direct la rândurile relevante. Indexul este o structură de date separată care mapează valorile la locații. Un index de carte funcționează la fel. Căutați un termen și găsiți numărul paginii. Nu citiți fiecare pagină pentru a-l găsi. Baza de date face același lucru.
Indexurile au un cost. Ocupă spațiu. Încetinesc inserările, actualizările și ștergerile, deoarece și indexul trebuie actualizat. Fiecare scriere devine mai scumpă. Avantajul este citirea mai rapidă. Pentru sarcinile de lucru cu citire intensă, indexurile sunt esențiale. Pentru sarcinile de lucru cu scriere intensă, prea mulți indexuri afectează performanța. Alegerea coloanelor de indexat necesită înțelegerea modelelor de interogare. Coloanele utilizate în clauzele WHERE, condițiile JOIN și clauzele ORDER BY sunt candidați buni. Coloanele cu cardinalitate scăzută, cum ar fi un steag boolean, sunt candidați slabi, deoarece indexul nu restrânge prea mult căutarea. Indexurile compozite acoperă mai multe coloane și pot servi interogări care filtrează pe mai multe câmpuri. Ordinea coloanelor dintr-un index compozit contează. Baza de date poate utiliza un index compozit pentru interogări pe coloana principală, dar nu doar pe coloanele finale. Proiectarea indexurilor este un compromis. Scopul este de a accelera interogările importante fără a încetini scrierile mai mult decât este necesar.
Tipuri de index
- B-tree — implicit pentru majoritatea bazelor de date, bun pentru interogări de interval
- Hash — căutări rapide de egalitate, fără suport pentru intervale
- Bitmap — coloane cu cardinalitate scăzută, interogări analitice
- Text complet — căutare text
- Compus — mai multe coloane într-un singur index
Un index este o scurtătură. Acesta oferă o viteză de scriere și spațiu de stocare mai bun decât viteza de citire. Folosește-l acolo unde citirea contează cel mai mult.
Comments (3)
Leave a comment