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.
Forskel mellem Clustered og ikke-klynget indeks
Clustered vs ikke-klynget indeks

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

Eksempel på et klynget indeks

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)

Eksempel på et ikke-klynget indeks

Følgende forespørgsel vil blive hentet hurtigere sammenlignet med det klyngede indeks.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Eksempel på et ikke-klynget indeks

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.

Opsummer dette indlæg med: