Diferența dintre Cluster și Non Cluster Index

Anonim

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-arbori

2. Indicii bitmap

3. Indici bazați pe funcții

4. Indicatori inversi cheie

5. Indici de cluster arbori B

Ce este un index non-cluster?

Din tipurile de indice de mai sus, următorii indicatori nu sunt grupați.

• Indicele B-tree

• Indicele bitmap

• Indexul bazat pe funcții

• Indicii cheie inversi

Indicii B-copac sunt cel mai utilizat tip de index al bazelor 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 într-o anumită coloană, serverul oracle stochează valorile coloanei și păstrează o referință la rândul real al tabelului.

Indicii bitmap sunt creați atunci când datele din coloană 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ă folosiți indexuri bitmap pe tabele extrem de actualizabile sau tranzacționale.

Indicii 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.

Indicii cheie 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 menționate mai sus 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?

Indicii clusterați sunt un tip special de indici. 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 necorporați?

1. Tabelul poate avea doar un indice cluster, dar pot exista până la 249 de indici non-clustered într-un singur tabel.

2. Indexul indexat este creat automat atunci când este creată o cheie primară, dar atunci când este creată o cheie unică, este creat un indice non-clustered.

3. Ordinea ordonată a indexului grupat se potrivește cu ordinea fizică a datelor de tabelă, dar în indexurile care nu sunt grupate, nu este.