Cluster vs Non Cluster Index
Indicii sunt foarte importanți în orice bază de date. Acestea sunt folosite pentru a îmbunătăți performanța preluării datelor din tabele. Ele sunt logic și fizic independente de datele din tabelele asociate. Prin urmare, indicele poate fi abandonat, recreat și reconstruit fără a afecta datele din tabelele de bază. Serverul Oracle poate să-și mențină automat indexurile fără implicarea unei DBA, atunci când tabelele asociate sunt inserate, actualizate și șterse. Există mai multe tipuri de indici. Aici sunt câțiva dintre ei.
1. Indici B-copac
2. Indicii bitmap
3. Indicii bazați pe funcții
4. Indici de cheie inversă
5. Indicii cluster arbori B
Ce este un index non-cluster??
Din tipurile de indice de mai sus, următorii indicatori nu sunt grupați.
• Indicele arborelui B
• Indicele bitmap
• Indice bazat pe funcții
• Indici de cheie inversă
Indiciile de arbori B sunt cele mai utilizate tipuri de indici de baze de date. Dacă este lansată comanda CREATE INDEX în baza de date, fără a specifica un tip, serverul Oracle creează un index b-tree. Când un index b-arbore este creat pe o anumită coloană, serverul oracle stochează valorile coloanei și păstrează o referință la rândul real al tabelului.
Analizele bitmap sunt create atunci când datele coloanelor nu sunt foarte selective. Asta înseamnă că datele din coloană au o cardinalitate scăzută. Acestea sunt special concepute pentru depozitele de date și nu este bine să se utilizeze indexuri bitmap pe tabele extrem de actualizabile sau tranzacționale.
Indicatorii funcționali provin de la Oracle 8i. Aici, o funcție este utilizată în coloana indexată. Prin urmare, într-un index funcțional, datele coloanelor nu sunt sortate în mod normal. Se sortează valorile coloanelor după aplicarea funcției. Acestea sunt foarte utile atunci când WHERE închide interogarea selectată este folosită o funcție.
Indicatorii inversi sunt un tip de index foarte interesant. Să presupunem că o coloană conține multe date unice de șir cum ar fi 'cityA', 'cityB', 'cityC' ... etc. Toate valorile au un model. Primele patru caractere sunt identice și părțile următoare sunt schimbate. Deci, atunci când indicele cheie REVERSE este creat în această coloană, Oracle va inversa șirul și va restabili într-un index b-tree.
Tipurile de indici mai sus menționate sunt indici NON-CLUSTERED. Aceasta înseamnă că datele indexate sunt stocate în afara tabelului și că se păstrează o referință sortată la tabel.
Ce este un index cluster??
Clusterele sunt indicatori specifici. Stochează datele în funcție de modul de stocare fizică a datelor din tabel. Deci, nu pot exista multe indexuri grupate pentru un singur tabel. Un tabel poate avea doar un indice cluster.
Care este diferența dintre indicii clusteri și cei fără cluster? 1. Tabelul poate avea doar un indice cluster, dar pot exista până la 249 de indici non-clustered într-un singur tabel. 2. Indicele cluster este creat automat atunci când se creează o cheie primară, dar se creează un index non-clustered când se creează o cheie unică. 3. Ordinea logică a indexului grupat se potrivește cu ordinea fizică a datelor din tabel, dar în cazul indiciilor care nu sunt grupate, acesta nu. |