Indeksering i DBMS: Hva er, typer indekser med EKSEMPLER
โก Smart oppsummering
Indeksering i databaser er en datastrukturteknikk som henter poster raskt via kartlegging.ping en sรธkenรธkkel til diskadressen til posten. Primรฆr, sekundรฆr, klynge-, flernivรฅ- og B-treindekserer hver handelsplass, hastighet og vedlikehold forskjellig.

Hva er indeksering?
Indeksering er en datastrukturteknikk som lar deg raskt hente poster fra en databasefil. En indeks er en liten tabell som bare har to kolonner. Den fรธrste kolonnen inneholder en kopi av primรฆrnรธkkelen eller kandidatnรธkkelen til en tabell. Den andre kolonnen inneholder et sett med pekere som inneholder adressen til diskblokken der den spesifikke nรธkkelverdien er lagret.
En indeks:
- Tar en sรธkenรธkkel som input.
- Returnerer effektivt en samling av samsvarende poster.
Uten en indeks mรฅ databasen skanne hver rad for รฅ svare pรฅ en spรธrring. Med en indeks hopper den rett til den samsvarende blokken, og det er derfor den valgte indekstypen har stor effekt pรฅ ytelsen.
Typer indeksering i DBMS

Indeksering i en database er definert basert pรฅ dens indekseringsattributter. De to hovedtypene av indekseringsmetoder er:
- Primรฆr indeksering
- Sekundรฆr indeksering
Primรฆrindeks i DBMS
En primรฆrindeks er en ordnet fil med fast lengde og to felt. Det fรธrste feltet er det samme som primรฆrnรธkkelen, og det andre feltet peker til den spesifikke datablokken. I primรฆrindeksen er det alltid en รฉn-til-รฉn-relasjon mellom oppfรธringene i indekstabellen.
Primรฆrindeksen er ogsรฅ videre delt inn i to typer:
- Tett indeks
- Sparsom indeks
Tett indeks
I en tett indeks opprettes en post for hver sรธkenรธkkelverdi i databasen. Dette hjelper deg med รฅ sรธke raskere, men trenger mer plass til รฅ lagre indeksposter. I denne metoden inneholder postene sรธkenรธkkelverdien og peker til den faktiske posten pรฅ disken.
Sparsom indeks
En sparsom indeks er en indekspost som bare vises for noen av verdiene i filen. Sparsom indeks hjelper deg med รฅ lรธse problemene med tett indeksering i DBMSI denne teknikken lagrer et omrรฅde med indekskolonner den samme datablokkadressen, og nรฅr data mรฅ hentes, hentes den blokkadressen.
En sparse-indeks lagrer indeksposter for bare noen sรธkenรธkkelverdier. Den trenger mindre plass og mindre vedlikeholdskostnader for innsettinger og slettinger, men den er tregere enn den tette indeksen for รฅ finne poster.
Nedenfor er et eksempel pรฅ en databaseindeks for en sparse-indeks.
Tett indeks vs. sparsom indeks
De to primรฆre indeksvariantene gjรธr motsatte avveininger, oppsummert nedenfor.
| Aspekt | Tett indeks | Sparsom indeks |
|---|---|---|
| Innganger | รn per sรธkenรธkkel | รn per blokk |
| Rom | Mer | Less |
| Sรธkehastighet | Raskere | Langsommere |
| Vedlikehold | hรธyere | Senk |
Sekundรฆrindeks i DBMS
Sekundรฆrindeksen i DBMS kan genereres av et felt som har en unik verdi for hver post, og den bรธr vรฆre en kandidatnรธkkel. Den er ogsรฅ kjent som en ikke-klyngeindeks.
Denne to-nivรฅ databaseindekseringsteknikken brukes til รฅ redusere kartetping stรธrrelsen pรฅ det fรธrste nivรฅet. For det fรธrste nivรฅet er et stort tallomrรฅde valgt, slik at kartetping stรธrrelsen forblir alltid liten.
Sekundรฆrindekseksempel
La oss forstรฅ sekundรฆrindeksering med et eksempel pรฅ en databaseindeks. I en bankkontodatabase lagres data sekvensielt etter kontonummer, men du vil kanskje finne alle kontoer i en bestemt filial av ABC bank.
Her kan du ha en sekundรฆr indeks for hver sรธkenรธkkel. Indeksposten peker til en bรธtte som inneholder pekere til alle postene med den spesifikke sรธkenรธkkelverdien.
Clustering Index i DBMS
I en klynget indeks lagres selve postene i indeksen, ikke pekere. Noen ganger opprettes indeksen pรฅ ikke-primรฆre nรธkkelkolonner, som kanskje ikke er unike for hver post. I en slik situasjon kan du gruppere to eller flere kolonner for รฅ fรฅ unike verdier og opprette en indeks, som kalles en klynget indeks. Dette hjelper deg ogsรฅ med รฅ identifisere posten raskere.
Eksempel: anta at et selskap har rekruttert mange ansatte i ulike avdelinger. I dette tilfellet bรธr det opprettes en klyngeindeks for alle ansatte som tilhรธrer samme avdeling.
De regnes som รฉn enkelt klynge, og indeksen peker pรฅ klyngen som helhet. Her er avdelingsnr. en ikke-unik nรธkkel.
Hva er en flernivรฅindeks?
Flernivรฅindeksering opprettes nรฅr en primรฆrindeks ikke fรฅr plass i minnet. Med denne typen indekseringsmetode kan du redusere antall disktilganger for รฅ nรฅ en hvilken som helst post. Postene lagres pรฅ en disk som en sekvensiell fil, og en sparsom indeks opprettes oppรฅ den filen.
B-treindeks
B-treindeksen er den mest brukte datastrukturen for trebasert indeksering i DBMS. Det er et flernivรฅformat for trebasert indeksering som bruker balansert binรฆre sรธketrรฆrAlle bladnodene i B-treet inneholder de faktiske datapekerne.
Dessuten er alle bladnoder sammenkoblet med en lenket liste, som lar et B-tre stรธtte bรฅde tilfeldig og sekvensiell tilgang.
- Bladnoder mรฅ ha mellom 2 og 4 verdier.
- Hver vei fra roten til et blad er stort sett like lang.
- Ikke-bladnoder bortsett fra rotnoden har mellom 3 og 5 undernoder.
- Hver node som ikke er en rot eller et blad har mellom n/2 og n barn.
Der oppslag med eksakt samsvar dominerer og rekkeviddeskanninger er sjeldne, hashing kan vรฆre et raskere alternativ til en B-treindeks.
Fordeler med indeksering
De viktigste fordelene med indeksering er:
- Det bidrar til รฅ redusere det totale antallet I/O-operasjoner som trengs for รฅ hente data, slik at du ikke trenger รฅ fรฅ tilgang til en rad direkte fra tabellen.
- Det tilbyr raskere sรธk og henting av data for brukere.
- Det kan redusere tabellplass, fordi du ikke trenger รฅ lagre ROWID-en i indeksen for hver koblede rad.
- Data i bladnodene er allerede ordnet etter verdien til nรธkkelen.
Ulemper med indeksering
De viktigste ulempene med indeksering er:
- For รฅ utfรธre indeksering trenger du en primรฆrnรธkkel pรฅ tabellen med en unik verdi.
- Du kan ikke bygge en annen indeks pรฅ data som allerede er indeksorganisert pรฅ samme mรฅte.
- Du har ikke lov til รฅ partisjonere en indeksorganisert tabell.
- Indeksering reduserer ytelsen i INSERT-, DELETE- og UPDATE-spรธrringer.





