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: