Forskjell mellom Clustered og Ikke-klynget indeks
Nรธkkelforskjell mellom Clustered og ikke-gruppert indeks
- En klyngeindeks er en type indeks som sorterer dataradene i tabellen pรฅ nรธkkelverdiene deres, mens den ikke-klyngede indeksen lagrer dataene pรฅ ett sted og indekser pรฅ et annet sted.
- Clustered index lagrer datasider i bladnodene til indeksen, mens Non-clustered index-metoden aldri lagrer datasider i bladnodene i indeksen.
- Klyngeindeksen krever ikke ekstra diskplass, mens den ikke-klyngede indeksen krever ekstra diskplass.
- Cluster indeksen gir raskere datatilgang, pรฅ den annen side er den ikke-klyngede indeksen tregere.

Hva er en indeks?
En indeks er en nรธkkel bygget fra รฉn eller flere kolonner i databasen som gjรธr det raskere รฅ hente rader fra tabellen eller visningen. Denne nรธkkelen hjelper en database som Oracle, SQL Server, MySQLosv. for รฅ finne raden knyttet til nรธkkelverdier raskt.
To typer indekser er:
- Clustered Index
- Ikke-Clustered Index
Hva er en Clustered indeks?
Cluster indeks er en type indeks som sorterer dataradene i tabellen pรฅ nรธkkelverdiene deres. I databasen er det bare รฉn gruppert indeks per tabell.
En klynget indeks definerer rekkefรธlgen data lagres i i tabellen som kan sorteres pรฅ bare รฉn mรฅte. Sรฅ det kan bare vรฆre en enkelt gruppert indeks for hver tabell. I en RDBMS lar primรฆrnรธkkelen deg vanligvis lage en gruppert indeks basert pรฅ den spesifikke kolonnen.
Hva er ikke-klynget indeks?
En ikke-gruppert indeks lagrer dataene pรฅ ett sted og indekser pรฅ et annet sted. Indeksen inneholder pekere til plasseringen av disse dataene. En enkelt tabell kan ha mange ikke-klyngede indekser ettersom en indeks i den ikke-klyngede indeksen er lagret pรฅ forskjellige steder.
For eksempel kan en bok ha mer enn รฉn indeks, en i begynnelsen som viser innholdet i en bokenhet, mens den andre indeksen viser indeksen over termer i alfabetisk rekkefรธlge.
En ikke-klyngende indeks er definert i ikke-bestillingsfeltet i tabellen. Denne typen indekseringsmetode hjelper deg med รฅ forbedre ytelsen til spรธrringer som bruker nรธkler som ikke er tilordnet som en primรฆrnรธkkel. En ikke-gruppert indeks lar deg legge til en unik nรธkkel for en tabell.
Karakteristisk for Clustered Index
- Standard og sortert datalagring
- Bruk bare รฉn eller flere enn รฉn kolonne for en indeks
- Hjelper deg รฅ lagre data og indeksere sammen
- Fragmentering
- Clustered indeksskanning og indekssรธk
- Nรธkkeloppslag
Kjennetegn pรฅ ikke-klyngede indekser
- Lagre kun nรธkkelverdier
- Pekere til haug/Clustered Indeksrader
- Tillater sekundรฆr datatilgang
- Bro til dataene
- Operasjoner av Index Scan og Index Seek
- Du kan opprette en ikke-gruppert indeks for en tabell eller visning
- Hver indeksrad i den ikke-klyngede indeksen lagrer den ikke-klyngede nรธkkelverdien og en radlokalisator
Clustered vs Non-clustered Index i SQL: Key Differences
| Parametre | Clustered | Ikke-klynget |
|---|---|---|
| Bruke til | Du kan sortere postene og lagre gruppert indeks fysisk i minnet i henhold til rekkefรธlgen. | En ikke-gruppert indeks hjelper deg med รฅ lage en logisk rekkefรธlge for datarader og bruker pekere for fysiske datafiler. |
| Oppbevaringsmetode | Lar deg lagre datasider i bladnodene til indeksen. | Denne indekseringsmetoden lagrer aldri datasider i bladnodene til indeksen. |
| Stรธrrelse | Stรธrrelsen pรฅ den grupperte indeksen er ganske stor. | Stรธrrelsen pรฅ den ikke-klyngede indeksen er liten sammenlignet med den klyngede indeksen. |
| Datatilgang | Raskere | Langsommere sammenlignet med den grupperte indeksen |
| Ekstra diskplass | Ikke obligatorisk | Nรธdvendig for รฅ lagre indeksen separat |
| Type nรธkkel | Som standard er bordets primรฆrnรธkler en Clustered Index. | Den kan brukes med unik begrensning pรฅ bordet som fungerer som en sammensatt nรธkkel. |
| Hovedfunksjon | En klynget indeks kan forbedre ytelsen til datainnhenting. | Det skal opprettes pรฅ kolonner som brukes i sammenfรธyninger. |
Et eksempel pรฅ en gruppert indeks
I eksemplet nedenfor er SalesOrderDetailID den grupperte indeksen. Eksempelspรธrring for รฅ hente data
SELECT CarrierTrackingNumber, UnitPrice FROM SalesData WHERE SalesOrderDetailID = 6
Et eksempel pรฅ en ikke-klynget indeks
I eksemplet nedenfor opprettes en ikke-gruppert indeks pรฅ OrderQty og ProductID som fรธlger
CREATE INDEX myIndex ON SalesData (ProductID, OrderQty)
Fรธlgende spรธrring vil bli hentet raskere sammenlignet med den grupperte indeksen.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
fordeler med Clustered Index
Fordelene/fordelene med den grupperte indeksen er:
- Clustered-indekser er et ideelt alternativ for range eller grupper etter med maks, min, count type spรธrringer
- I denne typen indekser kan et sรธk gรฅ rett til et bestemt punkt i data, slik at du kan fortsette รฅ lese sekvensielt derfra.
- Clustered index-metoden bruker plasseringsmekanisme for รฅ finne indeksoppfรธring ved starten av et omrรฅde.
- Det er en effektiv metode for omrรฅdesรธk nรฅr en rekke sรธkenรธkkelverdier er forespurt.
- Hjelper deg med รฅ minimere sideoverfรธringer og maksimere cachetreffene.
Fordeler med ikke-klynget indeks
Fordeler med รฅ bruke ikke-gruppert indeks er:
- En ikke-klyngeindeks hjelper deg รฅ hente data raskt fra databasetabellen.
- Hjelper deg รฅ unngรฅ overheadkostnadene knyttet til den grupperte indeksen
- En tabell kan ha flere ikke-klyngede indekser RDBMS. Sรฅ den kan brukes til รฅ lage mer enn รฉn indeks.
Ulemper med Clustered Index
Her er ulemper/ulemper ved รฅ bruke gruppert indeks:
- Mange innlegg i ikke-sekvensiell rekkefรธlge
- En gruppert indeks skaper mange konstante sidedelinger, som inkluderer dataside sรฅ vel som indekssider.
- Ekstra arbeid for SQL for innsettinger, oppdateringer og slettinger.
- En gruppert indeks tar lengre tid รฅ oppdatere poster nรฅr feltene i den grupperte indeksen endres.
- Bladnodene inneholder stort sett datasider i den grupperte indeksen.
Ulemper med ikke-gruppert indeks
Her er ulemper/ulemper ved รฅ bruke ikke-gruppert indeks:
- En ikke-gruppert indeks hjelper deg med รฅ lagre data i en logisk rekkefรธlge, men tillater ikke รฅ sortere datarader fysisk.
- Oppslagsprosessen pรฅ ikke-gruppert indeks blir kostbar.
- Hver gang klyngenรธkkelen oppdateres, kreves en tilsvarende oppdatering pรฅ den ikke-klyngede indeksen ettersom den lagrer klyngingsnรธkkelen.



