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: