Skillnaden mellan Cluster och Non Cluster Index

Anonim

Cluster vs Non Cluster Index

Indexer är mycket viktiga i en databas. De används för att förbättra prestanda för att hämta data från tabeller. De är logiskt och fysiskt oberoende av data i de tillhörande tabellerna. Därför kan indexerna släppas, återskapas och byggas om utan att påverka uppgifterna i grundtabellerna. Oracle-servern kan automatiskt behålla sina index utan att involvera en DBA, när de relaterade tabellerna läggs in, uppdateras och raderas. Det finns flera indextyper. Här är några av dem.

1. B-trädindex

2. Bitmappsindex

3. Funktionsbaserade indexer

4. Omvänd nyckelindex

5. B-trädklusterindex

Vad är ett icke-klusterindex?

Från ovanstående indextyper är följande icke-grupperade index.

• B-trädindex

• Bitmappsindex

• Funktionsbaserat index

• Omvänd nyckelindex

B-trädindex är den mest använda indextypen av databaser. Om CREATE INDEX-kommandot utfärdas i databasen, utan att ange en typ, skapar Oracle-servern ett b-trädindex. När ett b-trädindex skapas i en viss kolumn lagrar oracle-servern värdena för kolumnen och håller en hänvisning till den faktiska raden i tabellen.

Bitmappsindex skapas när kolumndata inte är särskilt selektiva. Det betyder att kolumndata har en låg kardinalitet. Dessa är speciellt utformade för datalager, och det är inte bra att använda bitmappsindex på höguppdaterbara eller transaktionella tabeller.

Funktionsindex kommer från Oracle 8i. Här används en funktion i den indexerade kolumnen. Därför sorteras kolumndata inte på ett normalt sätt i ett funktionellt index. Det sorterar värdena på kolumnerna efter att funktionen har tillämpats. Dessa är mycket användbara när WHERE nära av den valda sökningen används en funktion.

Omvänd nyckelindex är en mycket intressant indextyp. Låt oss anta att en kolumn innehåller många unika strängdata som "cityA", "cityB", "cityC" … etc. Alla värden har ett mönster. Första fyra tecknen är desamma och nästa delar ändras. Så när REVERSE-nyckelindex skapas i den här kolumnen kommer Oracle att vända strängen och återställa den i ett b-trädindex.

Ovannämnda indextyper är NON-CLUSTERED-index. Det betyder att indexerade data lagras utanför bordet, och en sorterad referens till bordet hålls.

Vad är ett klusterindex?

Klusterindex är en speciell typ av index. Det lagrar data enligt sättet att lagra tabelldata fysiskt. Så det kan inte finnas många grupperade index för ett bord. Ett bord kan bara ha ett grupperat index.

Vad är skillnaden mellan grupperade och icke-grupperade index?

1. Tabellen kan bara ha ett grupperat index, men det kan upp till 249 icke-grupperade index i en tabell.

2. Klusterindex skapas automatiskt när en primärnyckel skapas, men ett icke-klusterindex skapas när en unik nyckel skapas.

3. Den logiska ordningen i det grupperade indexet matchar den fysiska ordningen av tabelldatan, men i icke-grupperade index gör det inte.