"Databaseindeks" refererer til en spesiell type datastruktur som fremskynder henting av poster fra en databasetabell. Databaseindekser sørger for at du kan finne og få tilgang til dataene i en databasetabell effektivt uten å måtte søke i hver rad hver gang et databasespørsmål blir behandlet.

En databaseindeks kan sammenlignes med en boks indeks. Indekser i databaser viser deg til posten du leter etter i databasen, akkurat som en boks indeksside viser deg til ønsket emne eller kapittel.

Imidlertid, selv om databaseindekser er avgjørende for rask og effektiv datasøking og tilgang, tar de ytterligere skriv- og minneplass.

Hva er en indeks?

Databaseindekser er spesielle oppslagstabeller som består av to kolonner. Den første kolonnen er søketasten, og den andre er datapekeren. Tastene er verdiene du vil søke etter og hente fra databasetabellen, og pekeren eller referansen lagrer diskblokkadressen i databasen for den bestemte søkenøkkelen. Nøkkelfeltene er sortert slik at det akselererer datahenting for alle spørsmålene dine.

instagram viewer

Hvorfor bruke databaseindeksering?

Jeg skal vise deg databaseindekser på en forenklet måte her. La oss anta at du har en databasetabell over de åtte ansatte som jobber i et selskap, og at du vil søke i informasjonen for den siste oppføringen i tabellen. Nå, for å finne forrige oppføring, må du søke i hver rad i databasen.

Anta imidlertid at du har sortert tabellen alfabetisk basert på de ansattes fornavn. Så her er indekseringsnøkler basert på "navnekolonnen". Hvis du i så fall søker i den siste oppføringen, “Zack, ”Kan du hoppe til midten av tabellen og bestemme om oppføringen vår kommer før eller etter kolonnen.

Som du vet, kommer den etter den midterste raden, og du kan igjen dele radene etter den midterste raden i to og gjøre en lignende sammenligning. På denne måten trenger du ikke å krysse hver rad for å finne den siste oppføringen.

Hvis selskapet hadde 1 000 000 ansatte og den siste oppføringen var "Zack", ville du måtte søke 50 000 rader for å finne navnet hans. Mens du med alfabetisk indeksering kan du gjøre det i noen få trinn. Du kan nå forestille deg hvor mye raskere dataoppslag og tilgang kan bli med databaseindeksering.

I slekt: 13 viktigste SQL-kommandoer enhver programmerer burde vite

Ulike filorganisasjonsmetoder for databaseindekser

Indeksering avhenger sterkt av filorganisasjonsmekanismen som brukes. Vanligvis er det to typer filorganisasjonsmetoder som brukes i databaseindeksering for å lagre data. De er diskutert nedenfor:

1. Bestilt indeksfil: Dette er den tradisjonelle metoden for lagring av indeksdata. I denne metoden sorteres nøkkelverdiene i en bestemt rekkefølge. Data i en bestilt indeksfil kan lagres på to måter.

  • Sparse Index: I denne typen indeksering opprettes en indeksoppføring for hver post.
  • Tett indeks: Ved tett indeksering opprettes en indeksoppføring for noen poster. For å finne en post i denne metoden, må du først finne den viktigste søkeverdien fra indeksoppføringer som er mindre enn eller lik søkeverdien du leter etter.

2. Hash File organisasjon: I denne filorganisasjonsmetoden bestemmer en hash-funksjon stedet eller diskblokken der en post er lagret.

Typer av indeksering av databaser

Det er vanligvis tre metoder for databaseindeksering. De er:

  • Klynget indeksering
  • Ikke-gruppert indeksering
  • Flernivåindeksering

1. Klynget indeksering

I gruppert indeksering kan en enkelt fil lagre mer enn to dataposter. Systemet holder de faktiske dataene i gruppert indeksering i stedet for pekerne. Søking er kostnadseffektivt med gruppert indeksering, da den lagrer alle relaterte data på samme sted.

En klyngeindeks bruker bestilte datafiler for å definere seg selv. Å bli med i flere databasetabeller er også veldig vanlig med denne typen indeksering.

Det er også mulig å lage en indeks basert på ikke-primære kolonner som ikke er unike for hver nøkkel. Ved slike anledninger kombinerer den flere kolonner for å danne de unike nøkkelverdiene for klyngede indekser.

Så, kort sagt, klyngedekser er der lignende datatyper er gruppert og indekser blir opprettet for dem.

Eksempel: Anta at det er et selskap som har over 1000 ansatte i 10 forskjellige avdelinger. I dette tilfellet bør selskapet opprette indeksering av klynger i DBMS for å indeksere de ansatte som jobber i samme avdeling.

Hver klynge med ansatte som jobber i samme avdeling vil bli definert som en enkelt klynge, og datapekere i indekser vil referere til klyngen som en helhet.

I slekt: Hva er utenlandske nøkler i SQL-databaser?

2. Ikke-gruppert indeksering

Ikke-gruppert indeksering refererer til en type indeksering der rekkefølgen på indeksradene ikke er den samme som hvordan de opprinnelige dataene fysisk er lagret. I stedet peker en ikke-gruppert indeks mot datalagringen i databasen.

Eksempel: Ikke-gruppert indeksering ligner på en bok som har en bestilt innholdsside. Her er datapekeren eller referansen den bestilte innholdssiden som er alfabetisk sortert, og de faktiske dataene er informasjonen på bokens sider. Innholdssiden lagrer ikke informasjonen på bokens sider i sin rekkefølge.

3. Indeksering på flere nivåer

Flernivåindeksering brukes når antall indekser er veldig høyt, og den ikke kan lagre den primære indeksen i hovedminnet. Som du kanskje vet, består databaseindekser av søketaster og datapekere. Når størrelsen på databasen øker, vokser også antall indekser.

For å sikre rask søkeoperasjon er det imidlertid nødvendig med indeksregistreringer for å oppbevares i minnet. Hvis en indeks på ett nivå brukes når indeksnummeret er høyt, er det lite sannsynlig at den lagrer indeksen i minnet på grunn av størrelsen og flere tilganger.

Det er her indeksering på flere nivåer spiller inn. Denne teknikken bryter enkeltnivåindeksen i flere mindre blokker. Etter å ha gått i stykker blir den ytre nivåblokken så liten at den lett kan lagres i hovedminnet.

I slekt: Hvordan koble til en MySQL-database med Java

Hva er SQL-indeksfragmentering?

Når en hvilken som helst rekkefølge på indekssidene ikke samsvarer med den fysiske rekkefølgen i datafilen, forårsaker fragmentering av SQL-indeks. I utgangspunktet ligger alle SQL-indeksene fragmenteringsfrie, men når du bruker databasen (Sett inn / slett / endre data) gjentatte ganger, kan det føre til fragmentering.

Bortsett fra databasefragmentering, kan databasen din også møte andre viktige problemer som databasekorrupsjon. Det kan føre til tapte data og et skadet nettsted. Hvis du gjør forretninger med nettstedet ditt, kan det være et dødelig slag for deg.

E-post
SQL Server-data ble ødelagt? Prøv å gjenopprette det med SQL Recovery Toolbox

Recovery Toolbox for SQL Server hjelper til med å fikse ødelagte MDF-filer på en MS SQL Server for alle versjoner.

Les Neste

Relaterte temaer
  • Programmering
  • SQL
  • Dataanalyse
  • database
Om forfatteren
Zadhid A. Powell (12 artikler publisert)

Zadhid Powell er en datamaskiningeniør som ga opp kodingen for å begynne å skrive! Ved siden av er han en digital markedsfører, teknologientusiast, SaaS-ekspert, leser og ivrig tilhenger av programvaretrender. Ofte kan du oppdage at han gynger sentrumsklubber med gitaren eller inspiserer havbunnsdykking.

Mer fra Zadhid A. Powell

Abonner på vårt nyhetsbrev

Bli med på nyhetsbrevet vårt for tekniske tips, anmeldelser, gratis e-bøker og eksklusive tilbud!

Ett steg til…!

Bekreft e-postadressen din i e-posten vi nettopp sendte deg.

.