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.
Forskjell mellom Clustered og ikke-gruppert indeks
Clustered vs Non-clustered Index

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

Eksempel pรฅ en gruppert indeks

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)

Eksempel pรฅ en ikke-gruppert indeks

Fรธlgende spรธrring vil bli hentet raskere sammenlignet med den grupperte indeksen.

SELECT Product ID, OrderQty
FROM SalesData
WHERE ProductID = 714

Eksempel pรฅ en ikke-gruppert indeks

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.

Oppsummer dette innlegget med: