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:
- Clustered Index
- Non-Clustered Index
I denne veiledningen , vil du lære:
- Hva er en indeks?
- Hva er en gruppert indeks?
- Hva er ikke-gruppert indeks?
- Karakteristisk for klynget indeks
- Kjennetegn på ikke-klyngede indekser
- Et eksempel på en klynget indeks
- Et eksempel på en ikke- klynget indeks
- Forskjeller mellom klynget indeks og ikke-klynget indeks
- Fordeler med klynget indeks
- Fordeler med ikke-klynget indeks
- Ulemper med klynget Indeks
- Ulemper ved ikke-klynget indeks
Hva er en klynget indeks?
Klyngeindeks er en type indeks som sorterer dataradene i tabellen om 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å en 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, mens den andre indeksen viser ordindeksen i alfabetisk rekkefølge.
En ikke-klyngedeksindeks er definert i det ikke-ordrerende feltet 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 indekser på et annet sted.
- Klynget indeks lagrer datasider i bladnodene i indeksen, mens ikke-klynget indeksmetode aldri lagrer datasider i bladnodene i indeksen.
- Klyngeindeks krever ikke ekstra diskplass mens den ikke-klyngede indeksen krever ekstra diskplass.
- Klyngeindeks gir raskere tilgang til data, på den annen side er ikke-klynget indeks langsommere.
Karakteristisk for gruppert indeks
- Standard og sortert datalagring
- Bruk bare en eller flere kolonner for en indeks
- Hjelper deg til å lagre data og indeksere sammen
- Fragmentering
- Operasjoner
- Clustered index scan and index search
- Key Lookup
Egenskaper for ikke-klyngede indekser
- Bare lagre nøkkelverdier
- Pekere til høge / grupperte indeksrader
- Tillater sekundære data tilgang
- Bro til dataene
- Operasjoner av indeksskanning og indeksøk
- Du kan opprette et ikke gruppert 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. Eksempelspørsmål 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ørsmål blir hentet raskere sammenlignet med den grupperte indeksen.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Forskjeller mellom gruppert Indeks og ikke-klistrert indeks
Parametere | Clustered | Non-clustered |
---|---|---|
Bruk for | Du kan sortere postene og lagre klynget indeks fysisk i minnet etter 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-klyngede indeksen er liten sammenlignet med den klyngede indeksen. |
Datatilgang | Raskere | Tregere sammenlignet med den klyngede indeksen |
Ekstra diskplass | Ikke påkrevd | Påkrevd 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 klynget indeks kan forbedre ytelsen til datahenting. | Den skal opprettes på kolonner som brukes i sammenføyninger. |
Fordelene med klynget indeks
Fordelene / fordelene med klyngedeksen er:
- Klyngede indekser er et ideelt alternativ for rekkevidde eller gruppe etter med maks, min, telletype spørringer
- 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økenøkkelverdier.
- Hjelper deg med å minimere sideoverføringer og maksimere cache-treffene.
Fordeler med ikke-klynget indeks
Fordeler med å bruke ikke-klynget indeks er:
- En ikke-klyngende indeks hjelper deg for å hente data raskt fra databasetabellen.
- Hjelper deg med å unngå overheadkostnadene knyttet til den klyngede indeksen
- En tabell kan ha flere ikke-klyngede indekser i RDBMS. Så det kan brukes til å lage mer enn en indeks.
Ulemper ved gruppert indeks
Her er ulemper / ulemper ved å bruke gruppert indeks:
- Mange innsatser i ikke-sekvensiell rekkefølge
- En klynget indeks skaper mange konstante sidedelinger, som inkluderer dataside samt indeksider.
- Ekstra arbeid for SQL for innlegg, 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 den klyngede indeksen.
Ulemper ved ikke-klynget indeks
Her er ulemper / ulemper ved å bruke ikke-klynget indeks: