Databaseindeks: En introduktion til begyndere

Databaseindeks: En introduktion til begyndere

'Database Index' refererer til en særlig form for datastruktur, der fremskynder hentning af poster fra en databasetabel. Databaseindeks sikrer, at du effektivt kan lokalisere og få adgang til dataene i en databasetabel uden at skulle søge i hver række hver gang en databaseforespørgsel behandles.





Et databaseindeks kan sammenlignes med en bogs indeks. Indeks i databaser henviser dig til den post, du leder efter i databasen, ligesom en bogs indeksside peger dig til det ønskede emne eller kapitel.





Selvom databaseindeks er afgørende for hurtigt og effektivt datasøgning og -adgang, optager de dog yderligere skrive- og hukommelsesplads.





Hvad er et indeks?

Databaseindekser er specielle opslagstabeller, der består af to kolonner. Den første kolonne er søgetasten, og den anden er datapegeren. Nøglerne er de værdier, du vil søge og hente fra din databasetabel, og markøren eller referencen gemmer diskblokadressen i databasen for den specifikke søgenøgle. Nøglefelterne er sorteret, så det fremskynder datahentningen for alle dine forespørgsler.

Hvorfor bruge databaseindeksering?

Jeg vil vise dig databaseindeks på en forenklet måde her. Lad os antage, at du har en databasetabel over de otte medarbejdere, der arbejder i en virksomhed, og du vil søge i oplysningerne efter den sidste post i tabellen. For at finde den forrige post skal du søge i hver række i databasen.



Antag dog, at du har sorteret tabellen alfabetisk ud fra medarbejdernes fornavn. Så her er indekseringsnøgler baseret på navnekolonnen. Hvis du i så fald søger efter den sidste post, Zack , kan du springe til midten af ​​bordet og beslutte, om vores post kommer før eller efter kolonnen.

Som du ved, kommer den efter den midterste række, og du kan igen opdele rækkerne efter den midterste række i to og foretage en lignende sammenligning. På denne måde behøver du ikke at krydse hver række for at finde den sidste post.





Hvis virksomheden havde 1.000.000 ansatte, og den sidste post var Zack, skulle du søge i 50.000 rækker for at finde hans navn. Mens du med alfabetisk indeksering kan gøre det i et par trin. Du kan nu forestille dig, hvor meget hurtigere datasøgning og adgang der kan blive med databaseindeksering.

Relaterede: 13 vigtigste SQL -kommandoer, enhver programmerer bør kende





Forskellige metoder til filorganisation til databaseindekser

Indeksering afhænger meget af den anvendte filorganisationsmekanisme. Normalt er der to typer filorganisationsmetoder, der bruges i databaseindeksering til lagring af data. De diskuteres nedenfor:

1. Ordnet indeksfil: Dette er den traditionelle metode til lagring af indeksdata. I denne metode sorteres nøgleværdierne i en bestemt rækkefølge. Data i en ordnet indeksfil kan gemmes på to måder.

  • Sparsomt indeks: I denne type indeksering oprettes en indekspost for hver post.
  • Tæt indeks: Ved tæt indeksering oprettes en indekspost for nogle poster. For at finde en registrering i denne metode skal du først finde den mest betydningsfulde søgenøgleværdi fra indeksposter, der er mindre end eller lig med den søgenøgleværdi, du leder efter.

2. Hash -filorganisation: I denne filorganisationsmetode bestemmer en hash -funktion placeringen eller diskblokken, hvor en post er gemt.

Typer af databaseindeksering

Der er generelt tre metoder til databaseindeksering. De er:

  • Klynget indeksering
  • Ikke-grupperet indeksering
  • Indeksering på flere niveauer

1. Klynget indeksering

Ved klynget indeksering kan en enkelt fil gemme mere end to dataposter. Systemet beholder de faktiske data i klynget indeksering frem for pointerne. Søgning er omkostningseffektiv med klynget indeksering, da den gemmer alle de relaterede data samme sted.

hvordan man låser harddisk op for mac

Et klyngeindeks bruger ordnede datafiler til at definere sig selv. Det er også meget almindeligt at deltage i flere databasetabeller med denne type indeksering.

Det er også muligt at oprette et indeks baseret på ikke-primære kolonner, der ikke er unikke for hver nøgle. Ved sådanne lejligheder kombinerer den flere kolonner for at danne de unikke nøgleværdier for klyngede indekser.

Så kort fortalt er klyngeindekser, hvor lignende datatyper grupperes, og indeks oprettes for dem.

Eksempel: Antag, at der er en virksomhed, der har over 1.000 ansatte fordelt på 10 forskellige afdelinger. I dette tilfælde bør virksomheden oprette klyngeindeksering i deres DBMS for at indeksere de medarbejdere, der arbejder i samme afdeling.

Hver klynge med medarbejdere, der arbejder i den samme afdeling, vil blive defineret som en enkelt klynge, og datapunkter i indekser vil referere til klyngen som en helhed.

Relaterede: Hvad er udenlandske nøgler i SQL -databaser?

2. Ikke-grupperet indeksering

Ikke-klynget indeksering refererer til en type indeksering, hvor rækkefølgen af ​​indeksrækkerne ikke er den samme som, hvordan de originale data fysisk lagres. I stedet peger et ikke-grupperet indeks på datalagringen i databasen.

Eksempel: Ikke-grupperet indeksering ligner en bog, der har en bestilt indholdsside. Her er datapegeren eller referencen den bestilte indholdsside, som er sorteret alfabetisk, og de faktiske data er oplysningerne på bogens sider. Indholdssiden gemmer ikke oplysningerne på bogens sider i deres rækkefølge.

3. Indeksering på flere niveauer

Indeksering på flere niveauer bruges, når antallet af indekser er meget højt, og det ikke kan gemme det primære indeks i hovedhukommelsen. Som du måske ved, omfatter databaseindeks søgetaster og datapunkter. Når databasens størrelse stiger, vokser antallet af indeks også.

For at sikre hurtig søgning er indeksregistre imidlertid nødvendige for at blive gemt i hukommelsen. Hvis der bruges et enkeltniveauindeks, når indeksnummeret er højt, er det usandsynligt, at indekset gemmes i hukommelsen på grund af dets størrelse og flere adgangsforhold.

Det er her indeksering på flere niveauer spiller ind. Denne teknik bryder indekset på enkelt niveau i flere mindre blokke. Efter nedbrydning bliver blokken på det ydre niveau så lille, at den let kan gemmes i hovedhukommelsen.

Relaterede: Sådan opretter du forbindelse til en MySQL -database med Java

Hvad er SQL -indeksfragmentering?

Når enhver rækkefølge på indekssiderne ikke matcher den fysiske rækkefølge i datafilen, forårsager fragmentering af SQL -indeks. I første omgang er alle SQL-indekser uden fragmentering, men når du bruger databasen (Indsæt/Slet/Ændre data) gentagne gange, kan det forårsage fragmentering.

Bortset fra databasefragmentering kan din database også stå over for andre vitale problemer som databasekorruption. Det kan føre til tabte data og et skadet websted. Hvis du handler med dit websted, kan det være et dødeligt slag for dig.

Del Del Tweet E -mail Er SQL Server -data ødelagt? Prøv at gendanne det med SQL Recovery Toolbox

Recovery Toolbox til SQL Server hjælper med at rette de beskadigede MDF -filer på en MS SQL Server til alle versioner.

hvordan man sender beskeder på youtube
Læs Næste Relaterede emner
  • Programmering
  • SQL
  • Dataanalyse
  • database
Om forfatteren Zadhid A. Powell(16 artikler udgivet)

Zadhid Powell er en computeringeniør, der opgav kodning for at begynde at skrive! Ved siden af ​​er han digital marketingmedarbejder, teknologientusiast, SaaS -ekspert, læser og ivrig tilhænger af softwaretendenser. Ofte kan du finde ham vugge i downtownklubber med sin guitar eller inspicere dykning ved havbunden.

Mere fra Zadhid A. Powell

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere