Cluster vs Index non-cluster
Indexurile sunt foarte importante în orice bază de date. Sunt folosite pentru a îmbunătăți performanța extragerii datelor din tabele. Ele sunt independente din punct de vedere logic și fizic de datele din tabelele asociate. Prin urmare, indicii pot fi aruncați, recreați și reconstruiți fără a afecta datele tabelelor de bază. Serverul Oracle își poate menține automat indexurile fără nicio implicare a unui DBA, atunci când tabelele aferente sunt inserate, actualizate și șterse. Există mai multe tipuri de index. Iată câteva dintre ele.
1. Indici B-tree
2. Indici bitmap
3. Indici bazați pe funcții
4. Indecși cu taste inverse
5. Indici de cluster B-tree
Ce este un index non-cluster?
Din tipurile de index de mai sus, următorii sunt indecși non-cluster.
• Index B-tree
• Index bitmap
• Index bazat pe funcții
• Indici cu taste inverse
Indexurile B-tree sunt cele mai utilizate tipuri de indexuri de baze de date. Dacă comanda CREATE INDEX este lansată în baza de date, fără a specifica un tip, serverul Oracle creează un index b-tree. Când un index b-tree este creat pe o anumită coloană, serverul Oracle stochează valorile coloanei și păstrează o referință la rândul real al tabelului.
Indecii bitmap sunt creați atunci când datele coloanei nu sunt foarte selective. Aceasta înseamnă că datele coloanei au o cardinalitate scăzută. Acestea sunt special concepute pentru depozitele de date și nu este bine să folosiți indici bitmap pe tabele foarte actualizabile sau tranzacționale.
Indecii funcționali provin din Oracle 8i. Aici, o funcție este utilizată în coloana indexată. Prin urmare, într-un index funcțional, datele coloanei nu sunt sortate în mod normal. Sortează valorile coloanelor după aplicarea funcției. Acestea sunt foarte utile atunci când închiderea WHERE a interogării de selectare este utilizată o funcție.
Indecii cu taste inverse sunt un tip de index foarte interesant. Să presupunem că o coloană conține multe șir de date unice, cum ar fi „cityA”, „cityB”, „cityC” … etc. Toate valorile au un model. Primele patru caractere sunt aceleași, iar părțile următoare sunt modificate. Deci, atunci când indexul cheii REVERSE este creat pe această coloană, Oracle va inversa șirul și îl va restaura într-un index b-tree.
Tipurile de index menționate mai sus sunt indecși NON-CLUSTER. Aceasta înseamnă că datele indexate sunt stocate în afara tabelului și se păstrează o referință sortată la tabel.
Ce este un index cluster?
Indecii grupați sunt un tip special de indici. Stochează datele conform modului de stocare fizică a datelor din tabel. Deci, nu pot exista mulți indici grupați pentru un tabel. Un tabel poate avea un singur index grupat.
Care este diferența dintre indecșii grupați și cei negrupați?
1. Tabelul poate avea un singur index grupat, dar pot exista până la 249 de indecși non-cluster într-un singur tabel.
2. Indexul grupat este creat automat când este creată o cheie primară, dar un index negrupat este creat atunci când este creată o cheie unică.
3. Ordinea logică a indexului grupat se potrivește cu ordinea fizică a datelor din tabel, dar în indecșii non-cluster, nu.