Skillnad mellan Clustered och icke-klustrade index
Nyckelskillnad mellan Clustered och Non-clustered Index
- Ett klusterindex รคr en typ av index som sorterar dataraderna i tabellen pรฅ deras nyckelvรคrden, medan det icke-klustrade indexet lagrar data pรฅ en plats och index pรฅ en annan plats.
- Clustered index lagrar datasidor i indexets bladnoder, medan metoden Non-clustered index aldrig lagrar datasidor i indexets bladnoder.
- Klusterindexet krรคver inte ytterligare diskutrymme, medan det icke-klustrade indexet krรคver ytterligare diskutrymme.
- Cluster index ger snabbare dataรฅtkomst, รฅ andra sidan รคr det icke-klustrade indexet lรฅngsammare.

Vad รคr ett index?
Ett index รคr en nyckel byggd frรฅn en eller flera kolumner i databasen som snabbar upp hรคmtningen av rader frรฅn tabellen eller vyn. Denna nyckel hjรคlper en databas som Oracle, SQL Server, MySQL, etc. fรถr att snabbt hitta raden associerad med nyckelvรคrden.
Tvรฅ typer av index รคr:
- Clustered Index
- Icke-Clustered Index
Vad รคr en Clustered index?
Cluster index รคr en typ av index som sorterar dataraderna i tabellen pรฅ deras nyckelvรคrden. I databasen finns det bara ett klustrat index per tabell.
Ett klustrat index definierar i vilken ordning data lagras i tabellen som bara kan sorteras pรฅ ett sรคtt. Sรฅ det kan bara finnas ett enda klustrat index fรถr varje tabell. I en RDBMS tillรฅter primรคrnyckeln dig vanligtvis att skapa ett klustrat index baserat pรฅ den specifika kolumnen.
Vad รคr icke-klustrade index?
Ett icke-klustrat index lagrar data pรฅ en plats och index pรฅ en annan plats. Indexet innehรฅller pekare till platsen fรถr dessa data. En enskild tabell kan ha mรฅnga icke-klustrade index eftersom ett index i det icke-klustrade indexet lagras pรฅ olika platser.
Till exempel kan en bok ha mer รคn ett index, ett i bรถrjan som visar innehรฅllet i en bok enhetsmรคssigt medan det andra indexet visar termindexet i alfabetisk ordning.
Ett icke-klustringsindex definieras i tabellens icke-ordningsfรคlt. Den hรคr typen av indexeringsmetod hjรคlper dig att fรถrbรคttra prestandan fรถr frรฅgor som anvรคnder nycklar som inte รคr tilldelade som en primรคrnyckel. Ett icke-klustrat index lรฅter dig lรคgga till en unik nyckel fรถr en tabell.
Kรคnnetecknande fรถr Clustered Index
- Standard och sorterad datalagring
- Anvรคnd bara en eller flera kolumner fรถr ett index
- Hjรคlper dig att lagra data och index tillsammans
- Fragmentering
- Clustered index scan och index search
- Nyckelsรถkning
Egenskaper fรถr icke-klustrade index
- Lagra endast nyckelvรคrden
- Pekare till hรถgen/Clustered Index rader
- Tillรฅter sekundรคr dataรฅtkomst
- Bro till data
- Operaindexavsรถkning och indexsรถkning
- Du kan skapa ett icke-klustrat index fรถr en tabell eller vy
- Varje indexrad i det icke-klustrade indexet lagrar det icke-klustrade nyckelvรคrdet och en radlokalisering
Clustered vs icke-klustrade index i SQL: nyckelskillnader
| Driftparametrar | Clustered | Icke-klustrade |
|---|---|---|
| Anvรคnda fรถr | Du kan sortera posterna och lagra klustrade index fysiskt i minnet enligt bestรคllningen. | Ett icke-klustrat index hjรคlper dig att skapa en logisk ordning fรถr datarader och anvรคnder pekare fรถr fysiska datafiler. |
| Lagringsmetod | Lรฅter dig lagra datasidor i indexets bladnoder. | Denna indexeringsmetod lagrar aldrig datasidor i indexets bladnoder. |
| Storlek | Storleken pรฅ det klustrade indexet รคr ganska stort. | Storleken pรฅ det icke-klustrade indexet รคr litet jรคmfรถrt med det klustrade indexet. |
| Dataรฅtkomst | Snabbare | Lรฅngsammare jรคmfรถrt med det klustrade indexet |
| Ytterligare diskutrymme | Inte nรถdvรคndig | Krรคvs fรถr att lagra indexet separat |
| Typ av nyckel | Som standard รคr bordets primรคra tangenter en Clustered Index. | Den kan anvรคndas med unika begrรคnsningar pรฅ bordet som fungerar som en sammansatt nyckel. |
| Huvud funktion | Ett klustrat index kan fรถrbรคttra prestandan fรถr datahรคmtning. | Den ska skapas pรฅ kolumner som anvรคnds i kopplingar. |
Ett exempel pรฅ ett klustrat index
I exemplet nedan รคr SalesOrderDetailID det klustrade indexet. Exempelfrรฅga fรถr att hรคmta data
SELECT CarrierTrackingNumber, UnitPrice FROM SalesData WHERE SalesOrderDetailID = 6
Ett exempel pรฅ ett icke-klustrat index
I exemplet nedan skapas ett icke-klusterat index pรฅ OrderQty och ProductID enligt fรถljande
CREATE INDEX myIndex ON SalesData (ProductID, OrderQty)
Fรถljande frรฅga kommer att hรคmtas snabbare jรคmfรถrt med det klustrade indexet.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
Fรถrdelar med Clustered Index
Fรถrdelarna/fรถrdelarna med det klustrade indexet รคr:
- Clustered-index รคr ett idealiskt alternativ fรถr intervall eller gruppera efter med max, min, count typ frรฅgor
- I den hรคr typen av index kan en sรถkning gรฅ direkt till en specifik punkt i data sรฅ att du kan fortsรคtta lรคsa sekventiellt dรคrifrรฅn.
- Clustered index-metoden anvรคnder platsmekanism fรถr att hitta indexpost i bรถrjan av ett intervall.
- Det รคr en effektiv metod fรถr intervallsรถkningar nรคr ett intervall av sรถknyckelvรคrden efterfrรฅgas.
- Hjรคlper dig att minimera sidรถverfรถringar och maximera cachetrรคffarna.
Fรถrdelar med icke-klustrade index
Fรถrdelar med att anvรคnda icke-klustrade index รคr:
- Ett icke-klustringsindex hjรคlper dig att snabbt hรคmta data frรฅn databastabellen.
- Hjรคlper dig att undvika omkostnader fรถrknippade med det klustrade indexet
- En tabell kan ha flera icke-klustrade index i RDBMS. Sรฅ den kan anvรคndas fรถr att skapa mer รคn ett index.
Nackdelar med Clustered Index
Hรคr รคr nackdelar/nackdelar med att anvรคnda klustrade index:
- Massor av inlรคgg i icke-sekventiell ordning
- Ett klustrat index skapar massor av konstanta siddelningar, som inkluderar datasida sรฅvรคl som indexsidor.
- Extra arbete fรถr SQL fรถr infogningar, uppdateringar och borttagningar.
- Ett klustrat index tar lรคngre tid att uppdatera poster nรคr fรคlten i det klustrade indexet รคndras.
- Bladnoderna innehรฅller mestadels datasidor i det klustrade indexet.
Nackdelar med icke-klustrade index
Hรคr รคr nackdelar/nackdelar med att anvรคnda icke-klustrade index:
- Ett icke-klustrat index hjรคlper dig att lagra data i en logisk ordning men tillรฅter inte att sortera datarader fysiskt.
- Uppslagsprocessen pรฅ icke-klustrade index blir kostsam.
- Varje gรฅng klustringsnyckeln uppdateras krรคvs en motsvarande uppdatering av det icke-klustrade indexet eftersom det lagrar klustringsnyckeln.



