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.