Klynget vs ikke-klynget indeks: Nøgleforskelle med eksempel

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, MySQL osv. Til hurtigt at finde rækken, der er knyttet til nøgleværdier.

To typer indekser er:

  • Clustered Index
  • Non-Clustered Index

I denne vejledning , lærer du:

  • Hvad er et indeks?
  • Hvad er et grupperet indeks?
  • Hvad er ikke-grupperet indeks?
  • Karakteristisk for klyngede indeks
  • Karakteristika for ikke-klyngede indekser
  • Et eksempel på et klynget indeks
  • Et eksempel på et ikke- klyngede indeks
  • Forskelle mellem klyngede indeks og ikke-klyngede indeks
  • Fordele ved klyngede indeks
  • Fordele ved ikke-klyngede indeks
  • Ulemper ved klyngede Indeks
  • Ulemper ved ikke-grupperet indeks

Hvad er et klynget indeks?

Klyngeindeks er en type indeks, der sorterer datarækkerne i tabellen om deres nøgleværdier. I databasen er der kun et grupperet indeks pr. Tabel.

Et klynget indeks definerer den rækkefølge, som data lagres i tabellen, som kun kan sorteres på én måde. Så der kan kun være et enkelt klyngedeks for hver tabel. I en 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 på et sted og indekser på et andet sted. Indekset indeholder henvisninger til placeringen af disse data. En enkelt tabel kan have mange ikke-grupperede indekser, da et indeks i det ikke-grupperede indeks er gemt forskellige steder.

For eksempel kan en bog have mere end et indeks, et i begyndelsen, der viser indholdet af en bogsenhedsmæssigt, mens det andet indeks viser ordindekset i alfabetisk rækkefølge.

Et ikke-klyngende indeks er defineret i ikke-bestillingsfeltet i tabellen. Denne type indekseringsmetode hjælper dig med at forbedre udførelsen af forespørgsler, der bruger nøgler, der ikke er tildelt som en primær nøgle. Et ikke-grupperet indeks giver dig mulighed for at tilføje en unik nøgle til en tabel.

KEY DIFFERENCE

  • Cluster index er en type indeks, der sorterer datarækkerne i tabellen på deres nøgleværdier, mens det ikke-grupperede indeks lagrer dataene på et sted og indekser på et andet sted.
  • Klyngede indeks gemmer datasider i indeksets bladnoder, mens ikke-grupperet indeksmetode aldrig gemmer datasider i indeksets bladnoder.
  • Klyngeindeks kræver ikke yderligere diskplads, hvorimod det ikke-klyngede indeks kræver yderligere diskplads.
  • Klyngeindeks giver hurtigere dataadgang, på den anden side er ikke-klynget indeks langsommere.

Karakteristisk for klynget indeks

  • Standard og sorteret datalagring
  • Brug kun en eller flere kolonner til et indeks
  • Hjælper dig til at gemme data og indeksere sammen
  • Fragmentering
  • Operationer
  • Clustered index scan and index search
  • Key Lookup

Karakteristika for ikke-klyngede indekser

  • Gem kun nøgleværdier
  • Pegepunkter til rækker til heap / klyngede indeks
  • Tillader sekundære data adgang
  • Bro til dataene
  • Funktioner i indeksscanning og indekssøgning
  • Du kan oprette en ikke klynget indeks til en tabel eller visning
  • Hver indeksrække i det ikke-grupperede indeks gemmer den ikke-klyngede nøgleværdi og en rækkeplacering

Et eksempel på et klynget indeks

I eksemplet nedenfor er SalesOrderDetailID det klyngede indeks. Eksempel på forespørgsel for at hente data

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Et eksempel på et ikke-klynget indeks

I nedenstående eksempel oprettes et ikke-klynget indeks på OrderQty og ProductID som følger

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

Følgende forespørgsel hentes hurtigere sammenlignet med det klyngede indeks.

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Forskelle mellem grupperet Indeks og ikke-klynget indeks

Parametre Clustered Ikke-grupperet
Brug til Du kan sortere poster og gemme klyngede indeks fysisk i hukommelsen efter ordren . Et ikke-klynget indeks hjælper dig med at oprette en logisk rækkefølge for datarækker og bruger markører til fysiske datafiler.
Lagringsmetode Giver dig mulighed for at gemme datasider i bladets noder i indekset. Denne indekseringsmetode gemmer aldrig datasider i indeksets bladnoder.
Størrelse Størrelsen på det klyngede indeks er ret stor. Størrelsen på 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 Påkrævet for at gemme indekset separat
Type nøgle Som standard er primære nøgler til tabellen et grupperet indeks. Det kan bruges med en unik begrænsning på bordet, der fungerer som en sammensat nøgle.
Hovedfunktion Et klynget indeks kan forbedre ydelsen til datahentning. Det skal oprettes på kolonner, der bruges i sammenføjninger.

Fordele ved klynget indeks

Fordelene ved det klyngede indeks er:

  • Klyngede indekser er en ideel mulighed for rækkevidde eller gruppe efter med max, min, tælleforespø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 placeringsmekanisme til at finde indeksindtastning i starten af et interval.
  • Det er en effektiv metode til områdesøgninger, når der anmodes om et interval af 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-klynget indeks er:

  • Et ikke-klyngende indeks hjælper dig for at hente data hurtigt fra databasetabellen.
  • Hjælper dig med at undgå de omkostninger, der er forbundet med det klyngede indeks
  • En tabel kan have flere ikke-klyngede indekser i RDBMS. Så det kan bruges til at oprette mere end et indeks.

Ulemper ved grupperet indeks

Her er ulemper / ulemper ved at bruge grupperet indeks:

  • Masser af indsatser i ikke-sekventiel rækkefølge
  • Et klynget indeks skaber mange konstante sidedelinger, som inkluderer dataside såvel som indeksider.
  • Ekstra arbejde for SQL til indsatser, opdateringer og sletninger.
  • Et klynget indeks tager længere tid at opdatere poster, når felterne i det klyngede indeks ændres.
  • Bladknudepunkterne indeholder for det meste datasider i det klyngede indeks.

Ulemper ved ikke-grupperet indeks

Her er ulemper / ulemper ved at bruge ikke-grupperet indeks:

Write a Comment

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *