Vad är skillnaden mellan kluster och icke-klusterindex

De huvudskillnad mellan kluster och icke-klusterindex är det Det finns bara ett grupperat index per tabell medan det finns flera nonclustered index per tabell.

Först och främst är indexering en teknik för att enkelt och effektivt hämta poster från databasfilerna. Det snabbar upp frågans prestanda för de klientapplikationer som använder databasen. Dessutom finns det två typer av index som grupperat och icke-klusterindex. Klusterindex ändrar ordningen i vilken data lagras i disken. I ett icke-klusterindex överensstämmer dock inte den logiska ordningen i indexet med den fysiska ordningen för data som är lagrad i skivan.

Viktiga områden som omfattas

1. Vad är ett index
     - Definition, Funktionalitet
2. Vad är ett klusterindex?
     - Definition, Funktionalitet
3. Vad är ett icke-klusterindex
     - Definition, Funktionalitet
4. Vad är skillnaden mellan kluster och icke-klusterindex
     - Jämförelse av viktiga skillnader

Nyckelbegrepp

Clustered Index, Nonclustered Index

Vad är ett index

Antag en tabell som lagrar kundens detaljer. Den har tre kolumner som förnamn, efternamn och kontaktnummer. Om det inte finns några index i tabellen kommer data att införas i de lediga utrymmena i lagret utan någon särskild ordning. Om användaren behöver erhålla en viss kunds telefonnummer är det nödvändigt att söka data från början. Trots att vi får data, är det nödvändigt att fortsätta till slutet eftersom det kan finnas matchande data i slutet. Indexer är användbara i dessa situationer.

Vad är ett klusterindex?

Ett grupperat index ändrar ordningen där data lagras fysiskt. När tabelldata är i fysisk ordning skapar DBMS indexsidor. De hjälper till att navigera lätt till de uppgifter som krävs. Hela strukturen med basdatabasen data är känd som ett grupperat index. Processen med en fråga som navigerar genom det grupperade indexträdet till bastabelldatan kallas grupperat indexsök. Det finns ett grupperat index per tabell eftersom det är omöjligt att fysiskt arrangera data på två olika sätt utan att använda separata strukturer.

Vad är ett icke-klusterindex

Ett nonclustered index sorterar inte de fysiska data i tabellen. Indexet och tabellen lagras på olika ställen. Dessutom finns pekare eller referenser till data i tabellen. Det är möjligt att lagra data i valfri ordning eftersom den ordningen är oberoende av basdatabasen data. Därför kan det finnas mer än ett icke-klusterindex per tabell. Uppgifterna i grundtabellen är i heap medan referenserna är radidentifierarna.

När du kör en fråga mot en kolumn går databasen först till indexet och letar efter adressen till motsvarande rad i tabellen. Sedan går det till radadressen och hämtar andra kolumnvärden. Därför är nonclustered indexer långsammare än grupperade index. När det finns en unik nyckel definierad i tabellen skapas ett icke-grupperat index automatiskt.

Skillnad mellan Clustered och Nonclustered Index

Definition

Ett grupperat index är en typ av index där tabellposterna fysiskt omordnas för att matcha indexet. Ett nonclustered index är å andra sidan en speciell typ av index där den logiska ordningen i indexet inte matchar den fysiska lagrade ordningen av raderna på disken. Dessa definitioner förklarar skillnaden mellan grupperat och icke-klusterindex.

Antal index

Antalet index per tabell är en stor skillnad mellan grupperat och icke-klusterindex. En tabell kan ha ett enda grupperat index, men flera nonclustered index.

Funktionalitet

Clustered index lagrar inte pekare till de faktiska data. Icke-grupperade index lagrar emellertid både värdet och en pekare till den faktiska raden som innehåller data. Därför är detta en annan skillnad mellan grupperade och icke-klusterindex.

Order för lagring av data

Dessutom bestämmer ett klusterindex ordningen för lagring av data på skivan medan ett icke-klusterindex inte har någon effekt på ordningen för lagring av data på skivan.

Obligatoriskt minneutrymme

Dessutom kräver ett icke-klusterindex mer minne än ett grupperat index.

Fart

Hastighet är en annan skillnad mellan grupperat och nonclustered index. Nonclustered index är långsammare än grupperade index.

Slutsats

Det finns två typer av index som grupperat och nonclustered index. Skillnaden mellan grupperat och icke-klusterindex är att det bara finns ett grupperat index per tabell medan det finns flera icke-klusterindex per tabell. I korthet är ett nonclustered index långsammare och kräver mer utrymme än ett grupperat index.

Referens:

1. Yadav, Durgaprasad. "Index i SQL Server." LinkedIn SlideShare, 21 Nov. 2015, Tillgänglig här.
2. Rahaman, Mahabubur. "Introduktion av SQL Server Indexing." LinkedIn SlideShare, 23 maj 2015, Tillgänglig här.

Image Courtesy:

1. "Databaser logotyp" Av Borjasotomayor på engelska Wikibooks (CC BY-SA 3.0) via Commons Wikimedia