"Databaseindeks" henviser til en særlig form for datastruktur, der fremskynder hentning af poster fra en databasetabel. Databaseindeks sørger for, at du kan finde og få adgang til dataene i en databasetabel effektivt 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 peger på den post, du leder efter i databasen, ligesom en bogs indeksside viser dig til det ønskede emne eller kapitel.

Mens databaseindekser er afgørende for hurtig og effektiv dataforskning og -adgang, tager de dog yderligere skrivning og hukommelsesplads.

Hvad er et indeks?

Databaseindekser er specielle opslagstabeller bestående af to kolonner. Den første kolonne er søgetasten, og den anden er datapekeren. Nøglerne er de værdier, du vil søge efter 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 datahentningsoperationen for alle dine forespørgsler.

instagram viewer

Hvorfor bruge databaseindeksering?

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

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

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

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

Relaterede: 13 vigtigste SQL-kommandoer, som enhver programmerer burde vide

Forskellige filorganisationsmetoder til databaseindekser

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

1. Bestilt 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 bestilt indeksfil kan gemmes på to måder.

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

2. Hash File organisation: 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:

  • Clustered Indexing
  • Ikke-grupperet indeksering
  • Indeksering på flere niveauer

1. Clustered Indexing

I grupperet indeksering kan en enkelt fil gemme mere end to dataposter. Systemet holder de faktiske data i grupperet indeksering snarere end pointerne. Søgning er omkostningseffektiv med grupperet indeksering, da den gemmer alle relaterede data samme sted.

Et klyngende indeks 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 sagt er grupperingsindekser, hvor lignende datatyper grupperes, og indeks oprettes til dem.

Eksempel: Antag at der er en virksomhed, der har over 1.000 ansatte i 10 forskellige afdelinger. I dette tilfælde skal virksomheden oprette klyngende indeksering i deres DBMS for at indeksere de ansatte, der arbejder i samme afdeling.

Hver klynge med medarbejdere, der arbejder i samme afdeling, defineres som en enkelt klynge, og datapunkter i indekser henviser til klyngen som en hel enhed.

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

2. Ikke-grupperet indeksering

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

Eksempel: Ikke-grupperet indeksering svarer til en bog, der har en bestilt indholdsside. Her er datapekeren eller -henvisningen den ordnede indholdsside, der er alfabetisk sorteret, 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, indeholder databaseindekser søgetaster og datapegere. Når databasens størrelse stiger, vokser antallet af indekser også.

For at sikre hurtig søgning er det imidlertid nødvendigt, at indeksregistreringer opbevares i hukommelsen. Hvis der bruges et enkeltniveauindeks, når indeksnummeret er højt, er det usandsynligt, at det indeks gemmes i hukommelsen på grund af dets størrelse og flere adgang.

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

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

Hvad er SQL-indeksfragmentering?

Når en rækkefølge på indekssiderne ikke stemmer overens med den fysiske rækkefølge i datafilen, forårsager SQL-indeksfragmentering. Oprindeligt er alle SQL-indekser fragmenteringsfrie, men når du bruger databasen (Indsæt / Slet / Ændr data) gentagne gange, kan det forårsage fragmentering.

Bortset fra fragmentering af database kan din database også stå over for andre vigtige problemer som databasekorruption. Det kan føre til mistede data og et skadet websted. Hvis du driver forretning med dit websted, kan det være et fatalt slag for dig.

E-mail
SQL Server-data blev ø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.

Læs Næste

Relaterede emner
  • Programmering
  • SQL
  • Dataanalyse
  • database
Om forfatteren
Zadhid A. Powell (12 artikler offentliggjort)

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

Mere fra Zadhid A. Powell

Abonner på vores nyhedsbrev

Deltag i vores nyhedsbrev for tekniske tip, anmeldelser, gratis e-bøger og eksklusive tilbud!

Et trin mere !!!

Bekræft din e-mail-adresse i den e-mail, vi lige har sendt dig.

.