Indexering förbättrar databasprestanda genom att minimera antalet skivbesök som krävs för att uppfylla en fråga. Det är en datastrukturteknik som används för att lokalisera och snabbt komma åt data i databaser. Flera databasfält används för att generera index. Tabellens huvudnyckel eller kandidatnyckel dupliceras i den första kolumnen, vilket är söknyckeln. För att påskynda datahämtningen hålls värdena också i sorterad ordning. Det bör understrykas att sortering av data inte krävs. Den andra kolumnen är datareferensen eller pekaren som innehåller en uppsättning pekare som håller adressen till skivblocket där det specifika nyckelvärdet kan hittas.
Struktur av index i databasen
Attribut för indexering
- Åtkomsttyper: Detta hänvisar till typen av åtkomst som värdebaserad sökning, intervallåtkomst osv.
- Åtkomsttid: Det hänvisar till den tid som behövs för att hitta ett visst dataelement eller en uppsättning element.
- Insättningstid: Det hänvisar till den tid det tar att hitta rätt utrymme och infoga nya data.
- Raderingstid: Tid det tar att hitta ett objekt och ta bort det samt uppdatera indexstrukturen.
- Space Overhead: Det hänvisar till det extra utrymme som krävs av indexet.
Struktur av index i databasen
hur man får ett aktuellt datum i java
I allmänhet finns det två typer av filorganisationsmekanismer som följs av indexeringsmetoderna för att lagra data:
Sekventiell filorganisation eller beställd indexfil
I denna baseras indexen på en sorterad ordning av värdena. Dessa är i allmänhet snabba och en mer traditionell typ av lagringsmekanism. Dessa ordnade eller sekventiella filorganisationer kan lagra data i ett tätt eller sparsamt format.
- Tät Index
- För varje söknyckelvärde i datafilen finns det en indexpost.
- Denna post innehåller söknyckeln och även en referens till den första dataposten med det söknyckelvärdet.
Tät Index
- Sparsamt Index
- Indexposten visas endast för ett fåtal poster i datafilen. Varje objekt pekar på ett block som visas.
- För att hitta en post hittar vi indexposten med det största söknyckelvärdet mindre än eller lika med söknyckelvärdet vi letar efter.
- Vi börjar vid den posten som indexposten pekar på och fortsätter med pekarna i filen (det vill säga sekventiellt) tills vi hittar den önskade posten.
- Antal åtkomster som krävs=log₂(n)+1, (här n=antal block som förvärvats av indexfil)
Sparsamt Index
Hash-filorganisation
Index baseras på att värdena fördelas enhetligt över ett intervall av hinkar. De hinkar som ett värde tilldelas bestäms av en funktion som kallas en hashfunktion. Det finns i första hand tre metoder för indexering:
göra ett skalskript körbart
- Klustrad indexering : När fler än två poster lagras i samma fil kallas denna typ av lagring som klusterindexering. Genom att använda klusterindexering kan vi minska kostnaderna för att söka anledning eftersom flera poster relaterade till samma sak lagras på ett ställe och det ger också frekvent sammanfogning av fler än två tabeller (poster).
Klustringsindexet definieras på en ordnad datafil. Datafilen är beställd på ett icke-nyckelfält. I vissa fall skapas indexet på icke-primära nyckelkolumner som kanske inte är unika för varje post. I sådana fall, för att identifiera posterna snabbare, kommer vi att gruppera två eller flera kolumner för att få de unika värdena och skapa ett index av dem. Denna metod är känd som klustringsindex. I huvudsak grupperas poster med liknande egenskaper och index för dessa grupperingar bildas.
Studenter som läser varje termin, till exempel, grupperas tillsammans. Elever på första terminen, studenter på andra terminen, studenter på tredje terminen och så vidare kategoriseras.
Klustrad indexering
- Primär indexering: Detta är en typ av Clustered Indexing där data sorteras enligt söknyckeln och primärnyckeln i databastabellen används för att skapa indexet. Det är ett standardformat för indexering där det inducerar sekventiell filorganisation . Eftersom primärnycklar är unika och lagras på ett sorterat sätt är utförandet av sökoperationen ganska effektivt.
- Icke-klustrad eller sekundär indexering : Ett icke-klustrat index berättar bara för oss var data ligger, det vill säga det ger oss en lista med virtuella pekare eller referenser till platsen där data faktiskt lagras. Data lagras inte fysiskt i indexordningen. Istället finns data i lövnoder. För ex. innehållssidan i en bok. Varje post ger oss sidnumret eller platsen för den lagrade informationen. Den faktiska informationen här (information på varje sida i boken) är inte organiserad men vi har en ordnad referens (innehållssida) till var datapunkterna faktiskt ligger. Vi kan bara ha tät ordning i det icke-klustrade indexet eftersom sparsam ordning inte är möjlig eftersom data inte är fysiskt organiserade därefter.
Det kräver mer tid jämfört med det klustrade indexet eftersom en del extra arbete görs för att extrahera data genom att följa pekaren ytterligare. I fallet med ett klustrat index finns data direkt framför indexet.

Icke-klustrad indexering
npm rensa cache
- Indexering på flera nivåer: Med ökningen av storleken på databasen växer också index. Eftersom indexet lagras i huvudminnet kan ett index på en nivå bli för stort för att lagras med flera diskåtkomster. Flernivåindexeringen segregerar huvudblocket i olika mindre block så att detsamma kan lagras i ett enda block. De yttre blocken är uppdelade i inre block som i sin tur pekar mot datablocken. Detta kan enkelt lagras i huvudminnet med färre omkostnader.
Indexering på flera nivåer
Fördelar med indexering
- Förbättrad frågeprestanda: Indexering möjliggör snabbare datahämtning från databasen. Databasen kan snabbt upptäcka rader som matchar ett specifikt värde eller samling av värden genom att generera ett index på en kolumn, vilket minimerar den tid det tar att utföra en fråga.
- Effektiv dataåtkomst: Indexering kan förbättra dataåtkomsteffektiviteten genom att minska mängden disk I/O som krävs för att hämta data. Databasen kan underhålla datasidorna för ofta besökta kolumner i minnet genom att generera ett index på dessa kolumner, vilket minskar kravet på att läsa från disk.
- Optimerad datasortering: Indexering kan också förbättra prestanda för sorteringsoperationer. Genom att skapa ett index på de kolumner som används för sortering kan databasen undvika att sortera hela tabellen och istället bara sortera de relevanta raderna.
- Konsekvent dataprestanda: Indexering kan hjälpa till att säkerställa att databasen fungerar konsekvent även när mängden data i databasen ökar. Utan indexering kan frågor ta längre tid att köra när antalet rader i tabellen växer, medan indexeringen håller en ungefär konsekvent hastighet.
- Genom att säkerställa att endast unika värden infogas i kolumner som har indexerats som unika, kan indexering också användas för att säkerställa dataintegriteten. Detta undviker att lagra dubbletter av data i databasen, vilket kan leda till problem när du utför frågor eller rapporter.
Sammantaget ger indexering i databaser betydande fördelar för att förbättra frågeprestanda, effektiv dataåtkomst, optimerad datasortering, konsekvent dataprestanda och framtvingad dataintegritet
Nackdelar med indexering
- Indexering kräver mer lagringsutrymme för att hålla indexdatastrukturen, vilket kan öka den totala storleken på databasen.
- Ökat databasunderhållskostnader: Index måste underhållas när data läggs till, förstörs eller ändras i tabellen, vilket kan öka databasunderhållskostnaderna.
- Indexering kan minska prestandan för infogning och uppdatering eftersom indexdatastrukturen måste uppdateras varje gång data ändras.
- Att välja ett index kan vara svårt: Det kan vara utmanande att välja rätt index för en specifik fråga eller applikation och kan kräva en detaljerad undersökning av data och åtkomstmönster.
Funktioner av indexering
- Utvecklingen av datastrukturer, som t.ex B-träd eller De viktigaste kolumnerna för att indexera kolumner väljs utifrån hur ofta de används och vilka typer av frågor de utsätts för. De kardinalitet , selektivitet och unikhet hos indexeringskolumnerna kan tas med i beräkningen.
- Det finns flera olika indextyper som används av databaser, inklusive primära, sekundära, klustrade och icke-klustrade index. Baserat på databassystemets särskilda behov erbjuder varje form av index fördelar och nackdelar.
- För att databassystemet ska fungera som bäst krävs periodiskt indexunderhåll. Enligt förändringar i data och användningsmönster innebär underhållsarbete att bygga, uppdatera och ta bort index.
- Optimering av databasfrågor involverar indexering, vilket är viktigt. Frågeoptimeraren använder indexen för att välja den bästa exekveringsstrategin för en viss fråga baserat på kostnaden för att komma åt data och selektiviteten hos indexeringskolumnerna.
- Databaser använder sig av en rad indexeringsstrategier, inklusive täckande index, index-endast skanningar och partiella index. Dessa tekniker maximerar användningen av index för särskilda typer av frågor och dataåtkomst.
- När icke sammanhängande datablock lagras i ett index kan det resultera i indexfragmentering, vilket gör indexet mindre effektivt. Regelbundet underhåll av index, såsom defragmentering och omorganisation, kan minska splittring .
Slutsats
Indexering är en mycket användbar teknik som hjälper till att optimera söktiden i databas frågor. Tabellen över databasindexering består av en söknyckel och pekare . Det finns fyra typer av indexering: Primär, Sekundär Clustering och Multivalued Indexing. Primär indexering är uppdelad i två typer, tät och sparsam. Tät indexering används när indextabellen innehåller poster för varje söknyckel. Sparse indexering används när indextabellen inte använder en söknyckel för varje post. Indexering på flera nivåer B+ träd . Huvudsyftet med indexering är att ge bättre prestanda för datahämtning.
Vanliga frågor om indexering
F.1: Vad är indexering i databaser?
Svar:
handledning för javafx
Indexering är i grunden en teknik som hjälper till att minska söktiden för en databasfråga eller det hjälper till att snabbare komma åt databasen.
F.2: Vilka är exemplen på indexeringsdatabaser?
Svar:
Några vanliga exempel på indexeringsdatabaser är Web of Science, DOAJ ( Directory of Open Access Journals)
För mer information kan du hänvisa till Introduktion till B+ Tree och Typer av nycklar i databasen artikel.