- Indeksering brukes til å optimalisere ytelsen til en database ved å minimere antall disktilganger som kreves når en spørring behandles.
- Indeksen er en type datastruktur. Den brukes til å finne og få tilgang til dataene i en databasetabell raskt.
Indeksstruktur:
Indekser kan opprettes ved hjelp av noen databasekolonner.
- Den første kolonnen i databasen er søkenøkkelen som inneholder en kopi av primærnøkkelen eller kandidatnøkkelen til tabellen. Verdiene til primærnøkkelen lagres i sortert rekkefølge slik at de tilsvarende dataene lett kan nås.
- Den andre kolonnen i databasen er datareferansen. Den inneholder et sett med pekere som holder adressen til diskblokken der verdien til den bestemte nøkkelen kan finnes.
Indekseringsmetoder
Bestilte indekser
Indeksene er vanligvis sortert for å gjøre søket raskere. Indeksene som er sortert er kjent som ordnede indekser.
Eksempel : Anta at vi har en ansatttabell med tusenvis av poster og hver av dem er 10 byte lang. Hvis ID-ene deres begynner med 1, 2, 3 ... og så videre og vi må søke student med ID-543.
- I tilfelle av en database uten indeks, må vi søke i diskblokken fra start til den når 543. DBMS vil lese posten etter å ha lest 543*10=5430 byte.
- I tilfelle av en indeks, vil vi søke ved hjelp av indekser og DBMS vil lese posten etter å ha lest 542*2= 1084 byte som er svært mindre sammenlignet med forrige tilfelle.
Primærindeks
- Hvis indeksen er opprettet på grunnlag av primærnøkkelen til tabellen, er den kjent som primærindeksering. Disse primærnøklene er unike for hver post og inneholder en 1:1-relasjon mellom postene.
- Siden primærnøkler er lagret i sortert rekkefølge, er ytelsen til søkeoperasjonen ganske effektiv.
- Den primære indeksen kan klassifiseres i to typer: Tett indeks og sparsom indeks.
Tett indeks
- Den tette indeksen inneholder en indekspost for hver søkenøkkelverdi i datafilen. Det gjør søket raskere.
- I denne er antall poster i indekstabellen det samme som antall poster i hovedtabellen.
- Den trenger mer plass til å lagre selve indeksposten. Indekspostene har søketasten og en peker til den faktiske posten på disken.
Sparsom indeks
- I datafilen vises indeksposten bare for noen få elementer. Hvert element peker på en blokk.
- I dette, i stedet for å peke på hver post i hovedtabellen, peker indeksen på postene i hovedtabellen i et gap.
Klyngeindeks
- En gruppert indeks kan defineres som en ordnet datafil. Noen ganger opprettes indeksen på ikke-primære nøkkelkolonner som kanskje ikke er unike for hver post.
- I dette tilfellet, for å identifisere posten raskere, vil vi gruppere to eller flere kolonner for å få den unike verdien og lage indeks ut av dem. Denne metoden kalles en klyngeindeks.
- Postene som har lignende egenskaper grupperes, og indekser opprettes for disse gruppene.
Eksempel : anta at et selskap inneholder flere ansatte i hver avdeling. Anta at vi bruker en klyngeindeks, der alle ansatte som tilhører samme Dept_ID vurderes innenfor en enkelt klynge, og indekspekere peker til klyngen som helhet. Her er Dept_Id en ikke-unik nøkkel.
Det forrige skjemaet er lite forvirrende fordi en diskblokk deles av poster som tilhører den forskjellige klyngen. Hvis vi bruker separat diskblokk for separate klynger, kalles det bedre teknikk.
Sekundærindeks
I den sparsomme indekseringen, ettersom størrelsen på tabellen vokser, vokser også størrelsen på kartleggingen. Disse tilordningene holdes vanligvis i primærminnet, slik at henting av adresser skal gå raskere. Deretter søker sekundærminnet de faktiske dataene basert på adressen fra kartleggingen. Hvis kartstørrelsen vokser, blir henting av selve adressen tregere. I dette tilfellet vil den sparsomme indeksen ikke være effektiv. For å overvinne dette problemet introduseres sekundær indeksering.
I sekundær indeksering, for å redusere størrelsen på kartlegging, introduseres et annet nivå av indeksering. I denne metoden velges det enorme området for kolonnene i utgangspunktet slik at kartleggingsstørrelsen til det første nivået blir liten. Deretter deles hvert område videre inn i mindre områder. Kartleggingen av det første nivået lagres i primærminnet, slik at henting av adresse går raskere. Kartleggingen av det andre nivået og faktiske data lagres i sekundærminnet (harddisken).
For eksempel:
- Hvis du ønsker å finne posten til kast 111 i diagrammet, vil den søke etter den høyeste oppføringen som er mindre enn eller lik 111 i indeksen på første nivå. Den vil få 100 på dette nivået.
- Så i det andre indeksnivået gjør det igjen maks (111)<= 111 and gets 110. now using the address 110, it goes to data block starts searching each record till 111. < li>
- Slik utføres et søk i denne metoden. Innsetting, oppdatering eller sletting gjøres også på samme måte. =>