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 index
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 av bordet.
Bitmappsindex skapas när kolumndata inte är särskilt selektiva. Det betyder att kolumndata har en låg kardinalitet. Dessa är speciellt konstruerade för datalager, och det är inte bra att använda bitmappsindex på mycket uppdaterbara eller transaktionella tabeller.
Funktionella index 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.
Ovan nä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 Clustered och Non-Clustered Indexes? 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är nyckel skapas, men ett icke-grupperat index skapas när en unik nyckel skapas. 3. Den logiska ordningen i det grupperade indexet matchar den fysiska ordningen av tabelldata, men i icke-grupperade index, gör det inte. |