Indexarea în DBMS: Ce este, Tipuri de indexuri cu EXEMPLE
⚡ Rezumat inteligent
Indexarea în bazele de date este o tehnică de structurare a datelor care preia rapid înregistrările prin mapareping o cheie de căutare pentru adresa de disc a înregistrării sale. Indexurile primare, secundare, de clustering, multinivel și B-tree indexează fiecare spațiu de tranzacționare, viteză și întreținere în mod diferit.

Ce este indexarea?
Indexarea este o tehnică de structurare a datelor care vă permite să recuperați rapid înregistrări dintr-un fișier de bază de date. Un index este un tabel mic având doar două coloane. Prima coloană cuprinde o copie a cheii primare sau candidate a unui tabel. A doua coloană conține un set de indicii care conține adresa blocului de disc unde este stocată valoarea cheii respective.
Un indice:
- Preia o cheie de căutare ca intrare.
- Returnează eficient o colecție de înregistrări care se potrivesc.
Fără un index, baza de date trebuie să scaneze fiecare rând pentru a răspunde la o interogare. Cu unul, sare direct la blocul corespunzător, motiv pentru care tipul de index ales are un efect mare asupra performanței.
Tipuri de indexare în DBMS

Indexarea într-o bază de date este definită pe baza atributelor sale de indexare. Cele două tipuri principale de metode de indexare sunt:
- Indexarea primară
- Indexare secundară
Index primar în DBMS
Un index primar este un fișier ordonat de lungime fixă, cu două câmpuri. Primul câmp este același cu cheia primară, iar al doilea câmp indică acel bloc de date specific. În indexul primar, există întotdeauna o relație unu-la-unu între intrările din tabelul de indexuri.
Indexul primar este, de asemenea, împărțit în două tipuri:
- Index dens
- Index rar
Index dens
Într-un index dens, se creează o înregistrare pentru fiecare valoare a cheii de căutare din baza de date. Acest lucru vă ajută să căutați mai rapid, dar necesită mai mult spațiu pentru stocarea înregistrărilor indexului. În această metodă, înregistrările conțin valoarea cheii de căutare și indică înregistrarea reală de pe disc.
Index rar
Un index dispers este o înregistrare de index care apare doar pentru unele dintre valorile din fișier. Indexul dispers vă ajută să rezolvați problemele indexării dense în Baze de dateÎn această tehnică, o serie de coloane de index stochează aceeași adresă de bloc de date, iar atunci când este nevoie de preluare a datelor, se extrage adresa respectivă de bloc.
Un index dispers stochează înregistrări de index doar pentru anumite valori ale cheii de căutare. Necesită mai puțin spațiu și mai puține costuri de întreținere pentru inserări și ștergeri, dar este mai lent decât indexul dens pentru localizarea înregistrărilor.
Mai jos este un exemplu de index al bazei de date pentru un index dispers.
Indice dens vs. indice dispers
Cele două variante principale ale indicelui fac compromisuri opuse, rezumate mai jos.
| Aspect | Index dens | Index rar |
|---|---|---|
| intrările | Unul per cheie de căutare | Unul pe bloc |
| Spaţiu | Mai Mult | Less |
| Viteză de căutare | Mai rapid | Mai lent |
| Mentenanță | Superior | Coborâți |
Index secundar în DBMS
Indexul secundar din SGBD poate fi generat de un câmp care are o valoare unică pentru fiecare înregistrare și ar trebui să fie o cheie candidată. Este cunoscut și sub denumirea de index non-clustering.
Această tehnică de indexare a bazelor de date pe două niveluri este utilizată pentru a reduce hartaping dimensiunea primului nivel. Pentru primul nivel, este selectat un interval mare de numere, astfel încât hartaping dimensiunea rămâne întotdeauna mică.
Exemplu de index secundar
Să înțelegem indexarea secundară cu un exemplu de indexare a bazei de date. Într-o bază de date cu conturi bancare, datele sunt stocate secvențial de către cont_nr, dar este posibil să doriți să găsiți toate conturile dintr-o anumită sucursală a băncii ABC.
Aici, puteți avea un index secundar pentru fiecare cheie de căutare. Înregistrarea indexului indică o categorie care conține pointeri către toate înregistrările cu acea valoare specifică a cheii de căutare.
Clustering Index în DBMS
Într-un index grupat, în index sunt stocate înregistrările în sine, nu pointerii. Uneori, indexul este creat pe coloane care nu sunt cheie primară, care pot să nu fie unice pentru fiecare înregistrare. Într-o astfel de situație, puteți grupa două sau mai multe coloane pentru a obține valori unice și a crea un index, numit index grupat. Acest lucru vă ajută, de asemenea, să identificați înregistrarea mai rapid.
Exemplu: Să presupunem că o companie a recrutat mulți angajați în diverse departamente. În acest caz, ar trebui creat un index de clustering pentru toți angajații care aparțin aceluiași departament.
Acestea sunt considerate ca un singur cluster, iar indexul indică clusterul în ansamblu. Aici, Department_no este o cheie neunică.
Ce este un index multinivel?
Indexarea pe mai multe niveluri este creată atunci când un index principal nu încape în memorie. În acest tip de metodă de indexare, puteți reduce numărul de accesări la disc pentru a ajunge la orice înregistrare. Înregistrările sunt păstrate pe disc ca fișier secvențial, iar peste fișierul respectiv este creat un index dispers.
B-Tree Index
Indexul B-tree este cea mai utilizată structură de date pentru indexarea bazată pe arbori în SGBD-uri. Este un format multinivel de indexare bazată pe arbori care utilizează indexare echilibrată arbori binari de căutareToate nodurile frunză ale arborelui B dețin pointerii de date efectivi.
Mai mult, toate nodurile frunză sunt interconectate printr-o listă înlănțuită, ceea ce permite unui arbore B să suporte atât acces aleatoriu, cât și secvențial.
- Nodurile frunză trebuie să aibă între 2 și 4 valori.
- Fiecare cale de la rădăcină la frunză are în mare parte aceeași lungime.
- Nodurile non-frunză, în afară de nodul rădăcină, au între 3 și 5 noduri copil.
- Fiecare nod care nu este rădăcină sau frunză are între n/2 și n copii.
Acolo unde căutările cu potrivire exactă domină și scanările de interval sunt rare, hashing poate fi o alternativă mai rapidă la un index B-tree.
Avantajele indexării
Avantajele importante ale indexării sunt:
- Aceasta ajută la reducerea numărului total de operațiuni I/O necesare pentru a recupera date, astfel încât să nu fie nevoie să accesați un rând direct din tabel.
- Oferă utilizatorilor o căutare și o recuperare mai rapidă a datelor.
- Poate reduce spațiul din tabel, deoarece nu este nevoie să stocați ROWID-ul în index pentru fiecare rând legat.
- Datele din nodurile frunză sunt deja ordonate după valoarea cheii.
Dezavantajele indexării
Principalele dezavantaje ale indexării sunt:
- Pentru a efectua indexarea, aveți nevoie de o cheie primară în tabel cu o valoare unică.
- Nu puteți construi un alt index pe date care sunt deja organizate în același mod prin indexare.
- Nu aveți voie să partiționați un tabel organizat în index.
- Indexarea scade performanța în interogările INSERT, DELETE și UPDATE.





