Forskel Mellem Cluster og Non Cluster Index
Cluster vs Non Cluster Index
Indekser er meget vigtige i enhver database. De bruges til at forbedre ydeevnen ved at hente data fra tabeller. De er logisk og fysisk uafhængige af dataene i de tilhørende tabeller. Derfor kan indekserne falde, genskabe og genopbygge uden at påvirke dataene i basistabellerne. Oracle server kan automatisk vedligeholde sine indeks uden involvering af en DBA, når de tilhørende tabeller indsættes, opdateres og slettes. Der er flere indekstyper. Her er nogle af dem.
1. B-træ indekser
2. Bitmap indekser
3. Funktionsbaserede indekser
4. Omvendt nøgleindekser
5. B-træ klyngeindekser
Hvad er et ikke-klyngerindeks?
Fra ovenstående indekstyper er følgende ikke-klyngede indekser.
• B-træ indeks
• Bitmap indeks
• Funktionsbaseret indeks
• Omvendt nøgleindekser
B-træindeks er den mest anvendte indekstype af databaser. Hvis CREATE INDEX-kommandoen udstedes i databasen, opretter Oracle-serveren et b-tree-indeks uden at angive en type. Når et b-træindeks oprettes på en bestemt kolonne, gemmer oracle-serveren værdierne for kolonnen og holder en henvisning til den faktiske række i tabellen.
Bitmap indekser oprettes, når kolonne data ikke er meget selektiv. Det betyder, at kolonne data har en lav kardinalitet. Disse er specielt designet til datalagre, og det er ikke godt at bruge bitmap indeks på højt opdaterbare eller transaktionelle tabeller.
Funktionelle indeks kommer fra Oracle 8i. Her anvendes en funktion i den indekserede kolonne. Derfor er kolonnedata i et funktionelt indeks ikke sorteret på normal måde. Det sorterer værdierne af kolonnerne efter at have anvendt funktionen. Disse er meget nyttige, når WHERE tæt på den valgte forespørgsel anvendes en funktion.
Omvendt nøgleindeks er en meget interessant indekstype. Lad os antage, at en kolonne indeholder mange unikke strengdata som 'cityA', 'cityB', 'cityC' … osv. Alle værdier har et mønster. Første fire tegn er ens, og næste dele ændres. Så når REVERSE-nøgleindekset oprettes i denne kolonne, vil Oracle vende om snoren og genoprette den i et b-træ indeks.
Ovenstående indekstyper er ikke-klassificerede indekser. Det betyder, at indekserede data gemmes uden for bordet, og en sorteret reference til tabellen opbevares.
Hvad er et Clustered Index?
Klyngede indeks er en særlig type indekser. Det lagrer data i henhold til den måde, hvorpå du kan lagre tabeldata fysisk. Så der kan ikke være mange klyngeindekser for et bord. Ét bord kan kun have et grupperet indeks.
Hvad er forskellen mellem grupperede og ikke-grupperede indekser? 1. Tabel kan kun have et grupperet indeks, men der kan være op til 249 ikke-klyngede indekser i en tabel. 2. Klynget indeks oprettes automatisk, når der oprettes en primærnøgle, men der oprettes et ikke-klynget indeks, når der oprettes en unik nøgle. 3. Den logiske rækkefølge af det klyngede indeks matcher den fysiske rækkefølge af tabeldata, men i ikke-klyngede indekser gør det det ikke. |