Klynget vs ikke-klynget indeks: Viktige forskjeller med eksempel

Innholdsfortegnelse:

Anonim

Hva er en indeks?

En indeks er en nøkkel bygget fra en eller flere kolonner i databasen som fremskynder å hente rader fra tabellen eller visningen. Denne nøkkelen hjelper en database som Oracle, SQL Server, MySQL, etc. til raskt å finne raden knyttet til nøkkelverdier.

To typer indekser er:

  • Klynget indeks
  • Ikke-klynget indeks

I denne opplæringen lærer du:

  • Hva er en indeks?
  • Hva er en Clustered Index?
  • Hva er ikke-gruppert indeks?
  • Karakteristisk for Clustered Index
  • Kjennetegn ved ikke-grupperte indekser
  • Et eksempel på en gruppert indeks
  • Et eksempel på en ikke-gruppert indeks
  • Forskjeller mellom Clustered Index og NonClustered Index
  • Fordeler med Clustered Index
  • Fordeler med ikke-gruppert indeks
  • Ulemper med Clustered Index
  • Ulemper med ikke-gruppert indeks

Hva er en Clustered Index?

Klyngeindeks er en type indeks som sorterer dataradene i tabellen på nøkkelverdiene. I databasen er det bare en gruppert indeks per tabell.

En gruppert indeks definerer rekkefølgen data lagres i tabellen, som bare kan sorteres på én måte. Så det kan være bare en enkelt gruppert indeks for hver tabell. I en RDBMS lar vanligvis primærnøkkelen deg lage en gruppert indeks basert på den spesifikke kolonnen.

Hva er ikke-gruppert indeks?

En ikke-gruppert indeks lagrer dataene på ett sted og indekser på et annet sted. Indeksen inneholder pekere til plasseringen av dataene. En enkelt tabell kan ha mange ikke-grupperte indekser ettersom en indeks i den ikke-grupperte indeksen er lagret forskjellige steder.

For eksempel kan en bok ha mer enn en indeks, en i begynnelsen som viser innholdet i en bokenhet klokt, mens den andre indeksen viser indeksen over termer i alfabetisk rekkefølge.

En ikke-klyngedeksindeks er definert i ikke-bestillingsfeltet i tabellen. Denne typen indekseringsmetode hjelper deg med å forbedre ytelsen til spørsmål som bruker nøkler som ikke er tilordnet som primærnøkkel. En ikke-gruppert indeks lar deg legge til en unik nøkkel for en tabell.

HOVEDFORSKJELL

  • Klyngeindeks er en type indeks som sorterer dataradene i tabellen på nøkkelverdiene, mens den ikke-klyngede indeksen lagrer dataene på ett sted og indekserer på et annet sted.
  • Klynget indeks lagrer datasider i indeksens bladnoder, mens metoden med ikke-gruppert indeks aldri lagrer datasider i indeksens bladnoder.
  • Klyngeindeks krever ikke ekstra diskplass, mens den ikke-klyngede indeksen krever ekstra diskplass.
  • Klyngeindeks gir raskere tilgang til data, derimot er ikke-klynget indeks langsommere.

Karakteristisk for Clustered Index

  • Standard og sortert datalagring
  • Bruk bare en eller flere kolonner for en indeks
  • Hjelper deg med å lagre data og indeksere sammen
  • Fragmentering
  • Operasjoner
  • Clustered index scan og index search
  • Nøkkeloppslag

Kjennetegn ved ikke-grupperte indekser

  • Bare lagre nøkkelverdier
  • Pekere til høy / gruppert indeksrader
  • Tillater sekundær datatilgang
  • Bro til dataene
  • Operasjoner av indeksskanning og indekssøking
  • Du kan opprette en ikke-klassifisert indeks for en tabell eller visning
  • Hver indeksrad i den ikke-grupperte indeksen lagrer den ikke-grupperte nøkkelverdien og en radlokator

Et eksempel på en gruppert indeks

I eksemplet nedenfor er SalesOrderDetailID den klyngede indeksen. Eksempel på spørring for å hente data

SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6

Et eksempel på en ikke-gruppert indeks

I eksemplet nedenfor opprettes en ikke-clusted indeks på OrderQty og ProductID som følger

CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)

Følgende spørring blir hentet raskere sammenlignet med den klyngede indeksen.

SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714

Forskjeller mellom Clustered Index og NonClustered Index

Parametere Klynget Ikke gruppert
Bruke til Du kan sortere postene og lagre klyngedeksen fysisk i minnet i henhold til bestillingen. En ikke-gruppert indeks hjelper deg med å opprette en logisk rekkefølge for datarader og bruker pekere for fysiske datafiler.
Lagringsmetode Lar deg lagre datasider i bladnodene i indeksen. Denne indekseringsmetoden lagrer aldri datasider i indeksens bladnoder.
Størrelse Størrelsen på den klyngede indeksen er ganske stor. Størrelsen på den ikke-grupperte indeksen er liten sammenlignet med den grupperte indeksen.
Tilgang til data Raskere Tregere sammenlignet med klyngedeksen
Ekstra diskplass Ikke obligatorisk Nødvendig for å lagre indeksen separat
Type nøkkel Som standard er primære nøkler til tabellen en gruppert indeks. Den kan brukes med unik begrensning på bordet som fungerer som en sammensatt nøkkel.
Hovedfunksjon En gruppert indeks kan forbedre ytelsen til datainnhenting. Den skal opprettes på kolonner som brukes i sammenføyninger.

Fordeler med Clustered Index

Fordelene / fordelene med klyngedeksen er:

  • Klyngede indekser er et ideelt alternativ for rekkevidde eller gruppe etter med max, min, count type spørsmål
  • I denne typen indeks kan et søk gå rett til et bestemt punkt i data slik at du kan fortsette å lese sekvensielt derfra.
  • Klynget indeksmetode bruker lokaliseringsmekanisme for å finne indeksoppføring ved starten av et område.
  • Det er en effektiv metode for områdesøk når det blir bedt om et utvalg av søke nøkkelverdier.
  • Hjelper deg med å minimere sideoverføringer og maksimere cache-treffene.

Fordeler med ikke-gruppert indeks

Fordeler med å bruke ikke-gruppert indeks er:

  • En ikke-grupperingsindeks hjelper deg med å hente data raskt fra databasetabellen.
  • Hjelper deg med å unngå overheadkostnadene knyttet til klyngedeksen
  • En tabell kan ha flere ikke-grupperte indekser i RDBMS. Så det kan brukes til å lage mer enn en indeks.

Ulemper med Clustered Index

Her er ulemper / ulemper ved å bruke gruppert indeks:

  • Mange innsatser i ikke-sekvensiell rekkefølge
  • En gruppert indeks skaper mange konstante sidesplitt, som inkluderer både dataside og indeksider.
  • Ekstra arbeid for SQL for innsatser, oppdateringer og slettinger.
  • En klynget indeks tar lengre tid å oppdatere poster når feltene i den klyngede indeksen endres.
  • Bladknutene inneholder for det meste datasider i klyngedeksen.

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.
  • Oppslagsprosess på ikke-gruppert indeks blir kostbar.
  • Hver gang klyngenøkkelen oppdateres, kreves en tilsvarende oppdatering på den ikke-klyngede indeksen da den lagrer klyngenøkkelen.