Forskel mellem Clustered og Ikke-klynget indeks
Nøgleforskel mellem Clustered og ikke-klynget indeks
- Et klyngeindeks er en type indeks, der sorterer datarækkerne i tabellen på deres nøgleværdier, hvorimod det ikke-klyngede indeks gemmer dataene på et sted og indekserer på et andet sted.
- Clustered index gemmer datasider i indeksets bladnoder, mens metoden Non-clustered index aldrig gemmer datasider i indeksets bladnoder.
- Klyngeindekset kræver ikke yderligere diskplads, hvorimod det ikke-klyngede indeks kræver yderligere diskplads.
- Cluster indeks giver hurtigere dataadgang, på den anden side er Non-clustered indekset langsommere.

Hvad er et indeks?
Et indeks er en nøgle bygget fra en eller flere kolonner i databasen, der fremskynder hentning af rækker fra tabellen eller visningen. Denne nøgle hjælper en database som Oracle, SQL Server, MySQLosv. for hurtigt at finde den række, der er knyttet til nøgleværdier.
To typer indekser er:
- Clustered Index
- Ikke-Clustered Index
Hvad er en Clustered indeks?
Cluster indeks er en type indeks, som sorterer datarækkerne i tabellen på deres nøgleværdier. I databasen er der kun et klynget indeks pr. tabel.
Et klynget indeks definerer den rækkefølge, som data lagres i i tabellen, som kun kan sorteres på én måde. Så der kan kun være et enkelt klynget indeks for hver tabel. I et RDBMS giver den primære nøgle dig normalt mulighed for at oprette et klynget indeks baseret på den specifikke kolonne.
Hvad er ikke-klynget indeks?
Et ikke-klynget indeks gemmer dataene ét sted og indekser et andet sted. Indekset indeholder pointere til placeringen af disse data. En enkelt tabel kan have mange ikke-klyngede indekser, da et indeks i det ikke-klyngede indeks er gemt forskellige steder.
For eksempel kan en bog have mere end et indeks, et i begyndelsen, som viser indholdet af en bog enhedsmæssigt, mens det andet indeks viser indekset over termer i alfabetisk rækkefølge.
Et ikke-klyngeindeks er defineret i feltet for ikke-rækkefølge i tabellen. Denne type indekseringsmetode hjælper dig med at forbedre ydeevnen af forespørgsler, der bruger nøgler, der ikke er tildelt som en primær nøgle. Et ikke-klynget indeks giver dig mulighed for at tilføje en unik nøgle til en tabel.
Karakteristisk for Clustered Index
- Standard og sorteret datalagring
- Brug kun én eller flere kolonner til et indeks
- Hjælper dig med at gemme data og indeksere sammen
- Fragmentering
- Produktion
- Clustered indeksscanning og indekssøgning
- Nøgleopslag
Karakteristika for ikke-klyngede indekser
- Gem kun nøgleværdier
- Henvisninger til bunke/Clustered Indeksrækker
- Tillader sekundær dataadgang
- Bro til data
- Operationer af Index Scan og Index Seek
- Du kan oprette et ikke-klynget indeks for en tabel eller visning
- Hver indeksrække i det ikke-klyngede indeks gemmer den ikke-klyngede nøgleværdi og en rækkefinder
Clustered vs ikke-klynget indeks i SQL: Nøgleforskelle
| Driftsparametre | Clustered | Ikke-klyngede |
|---|---|---|
| Brugt til | Du kan sortere posterne og gemme klynget indeks fysisk i hukommelsen i henhold til ordren. | Et ikke-klynget indeks hjælper dig med at oprette en logisk rækkefølge for datarækker og bruger pointere til fysiske datafiler. |
| Opbevaringsmetode | Giver dig mulighed for at gemme datasider i indeksets bladnoder. | Denne indekseringsmetode gemmer aldrig datasider i indeksets bladknuder. |
| Størrelse | Størrelsen af det klyngede indeks er ret stort. | Størrelsen af det ikke-klyngede indeks er lille sammenlignet med det klyngede indeks. |
| Dataadgang | Hurtigere | Langsommere sammenlignet med det klyngede indeks |
| Yderligere diskplads | Ikke påkrævet | Nødvendig for at gemme indekset separat |
| Type nøgle | Som standard er bordets primære nøgler en Clustered Index. | Den kan bruges med unik begrænsning på bordet, der fungerer som en sammensat nøgle. |
| Vigtigste funktion | Et klynget indeks kan forbedre ydeevnen for datahentning. | Det skal oprettes på kolonner, der bruges i joinforbindelser. |
Et eksempel på et klynget indeks
I eksemplet nedenfor er SalesOrderDetailID det klyngede indeks. Eksempelforespørgsel til at hente data
SELECT CarrierTrackingNumber, UnitPrice FROM SalesData WHERE SalesOrderDetailID = 6
Et eksempel på et ikke-klynget indeks
I eksemplet nedenfor oprettes et ikke-klynget indeks på OrderQty og ProductID som følger
CREATE INDEX myIndex ON SalesData (ProductID, OrderQty)
Følgende forespørgsel vil blive hentet hurtigere sammenlignet med det klyngede indeks.
SELECT Product ID, OrderQty FROM SalesData WHERE ProductID = 714
Fordele ved Clustered Index
Fordele/fordele ved det klyngede indeks er:
- Clustered-indekser er en ideel mulighed for rækkevidde eller grupper efter med maks., min., antal forespørgsler
- I denne type indeks kan en søgning gå direkte til et bestemt punkt i data, så du kan fortsætte med at læse sekventielt derfra.
- Clustered index-metoden bruger lokationsmekanisme til at lokalisere indeksindtastning i starten af et interval.
- Det er en effektiv metode til rækkeviddesøgninger, når der anmodes om en række søgenøgleværdier.
- Hjælper dig med at minimere sideoverførsler og maksimere cache-hits.
Fordele ved ikke-klynget indeks
Fordele ved at bruge ikke-klyngede indeks er:
- Et ikke-klyngeindeks hjælper dig med at hente data hurtigt fra databasetabellen.
- Hjælper dig med at undgå de faste omkostninger forbundet med det grupperede indeks
- En tabel kan have flere ikke-klyngede indekser i RDBMS. Så det kan bruges til at oprette mere end ét indeks.
Ulemper ved Clustered Index
Her er ulemper/ulemper ved at bruge clustered index:
- Masser af indsatser i ikke-sekventiel rækkefølge
- Et klynget indeks skaber masser af konstante sideopdelinger, som inkluderer dataside såvel som indekssider.
- Ekstra arbejde til SQL til indsættelser, opdateringer og sletninger.
- Et klynget indeks tager længere tid at opdatere poster, når felterne i det klyngede indeks ændres.
- Bladknuderne indeholder for det meste datasider i det klyngede indeks.
Ulemper ved ikke-klynget indeks
Her er ulemper/ulemper ved at bruge ikke-klyngede indeks:
- Et ikke-klynget indeks hjælper dig med at gemme data i en logisk rækkefølge, men tillader ikke at sortere datarækker fysisk.
- Opslagsproces på ikke-klyngede indeks bliver dyrt.
- Hver gang clustering-nøglen opdateres, er en tilsvarende opdatering påkrævet på det ikke-klyngede indeks, da det gemmer clustering-nøglen.



