"Database-index" verwijst naar een speciaal soort gegevensstructuur die het ophalen van records uit een databasetabel versnelt. Database-indexen zorgen ervoor dat u de gegevens in een databasetabel efficiënt kunt vinden en openen zonder dat u elke rij hoeft te doorzoeken wanneer een databasequery wordt verwerkt.

Een database-index kan worden vergeleken met de index van een boek. Indexen in databases verwijzen u naar het record dat u zoekt in de database, net zoals de indexpagina van een boek u naar het gewenste onderwerp of hoofdstuk verwijst.

Hoewel database-indexen essentieel zijn voor het snel en efficiënt opzoeken en openen van gegevens, nemen ze extra schrijf- en geheugenruimte in beslag.

Wat is een index?

Database-indexen zijn speciale opzoektabellen die uit twee kolommen bestaan. De eerste kolom is de zoeksleutel en de tweede is de gegevensaanwijzer. De sleutels zijn de waarden die u wilt zoeken en ophalen uit uw databasetabel, en de aanwijzer of verwijzing slaat het schijfblokadres op in de database voor die specifieke zoeksleutel. De sleutelvelden zijn zo gesorteerd dat het het ophalen van gegevens voor al uw zoekopdrachten versnelt.

instagram viewer

Waarom database-indexering gebruiken?

Ik ga u hier op een vereenvoudigde manier database-indexen laten zien. Laten we aannemen dat u een databasetabel hebt van de acht werknemers die in een bedrijf werken, en dat u de informatie wilt doorzoeken naar de laatste invoer van de tabel. Om het vorige item te vinden, moet u nu in elke rij van de database zoeken.

Stel dat u de tabel alfabetisch hebt gesorteerd op basis van de voornaam van de werknemers. Dus hier zijn indexeringssleutels gebaseerd op de "naamkolom". In dat geval, als u de laatste invoer zoekt, "Zak”, kunt u naar het midden van de tabel springen en beslissen of onze invoer voor of na de kolom komt.

Zoals je weet, komt het na de middelste rij, en je kunt de rijen na de middelste rij opnieuw in twee delen en een vergelijkbare vergelijking maken. Op deze manier hoeft u niet elke rij te doorlopen om de laatste invoer te vinden.

Als het bedrijf 1.000.000 werknemers had en de laatste vermelding 'Zack' was, zou je 50.000 rijen moeten doorzoeken om zijn naam te vinden. Terwijl u met alfabetische indexering dit in een paar stappen kunt doen. U kunt zich nu voorstellen hoeveel sneller het opzoeken en openen van gegevens kan worden met database-indexering.

Verwant: 13 belangrijkste SQL-opdrachten die elke programmeur moet weten

Verschillende bestandsorganisatiemethoden voor database-indexen

Indexering is sterk afhankelijk van het gebruikte bestandsorganisatiemechanisme. Gewoonlijk zijn er twee soorten bestandsorganisatiemethoden die worden gebruikt bij het indexeren van databases om gegevens op te slaan. Ze worden hieronder besproken:

1. Besteld indexbestand: Dit is de traditionele methode voor het opslaan van indexgegevens. Bij deze methode worden de sleutelwaarden in een bepaalde volgorde gesorteerd. Gegevens in een geordend indexbestand kunnen op twee manieren worden opgeslagen.

  • Schaarse index: Bij dit type indexering wordt voor elk record een indexitem gemaakt.
  • Dichte index: Bij dichte indexering wordt voor sommige records een indexitem gemaakt. Om met deze methode een record te vinden, moet u eerst de belangrijkste zoeksleutelwaarde vinden uit indexitems die kleiner zijn dan of gelijk zijn aan de zoeksleutelwaarde die u zoekt.

2. Hash-bestandsorganisatie: Bij deze bestandsorganisatiemethode bepaalt een hashfunctie de locatie of het schijfblok waar een record wordt opgeslagen.

Soorten database-indexering

Er zijn over het algemeen drie methoden voor database-indexering. Zij zijn:

  • Geclusterde indexering
  • Niet-geclusterde indexering
  • Indexering op meerdere niveaus

1. Geclusterde indexering

Bij geclusterde indexering kan één enkel bestand meer dan twee gegevensrecords bevatten. Het systeem houdt de feitelijke gegevens in geclusterde indexering in plaats van de wijzers. Zoeken is kostenefficiënt met geclusterde indexering omdat alle gerelateerde gegevens op dezelfde plaats worden opgeslagen.

Een clusterindex gebruikt geordende gegevensbestanden om zichzelf te definiëren. Ook het samenvoegen van meerdere databasetabellen is heel gebruikelijk bij dit type indexering.

Het is ook mogelijk om een ​​index te maken op basis van niet-primaire kolommen die niet uniek zijn voor elke sleutel. In dergelijke gevallen combineert het meerdere kolommen om de unieke sleutelwaarden voor geclusterde indexen te vormen.

Kortom, clusteringindices zijn waar vergelijkbare gegevenstypen worden gegroepeerd en er worden indices voor gemaakt.

Voorbeeld: Stel dat er een bedrijf is met meer dan 1.000 medewerkers op 10 verschillende afdelingen. In dit geval moet het bedrijf clusteringindexering in hun DBMS maken om de werknemers die op dezelfde afdeling werken te indexeren.

Elk cluster met werknemers die op dezelfde afdeling werken, wordt gedefinieerd als één cluster en datapointers in indices verwijzen naar het cluster als een geheel.

Verwant: Wat zijn buitenlandse sleutels in SQL-databases?

2. Niet-geclusterde indexering

Niet-geclusterde indexering verwijst naar een type indexering waarbij de volgorde van de indexrijen niet hetzelfde is als hoe de originele gegevens fysiek worden opgeslagen. In plaats daarvan verwijst een niet-geclusterde index naar de gegevensopslag in de database.

Voorbeeld: Niet-geclusterde indexering is vergelijkbaar met een boek met een geordende inhoudspagina. Hier is de gegevensaanwijzer of referentie de geordende inhoudspagina die alfabetisch is gesorteerd, en de feitelijke gegevens zijn de informatie op de pagina's van het boek. De inhoudspagina slaat de informatie op de pagina's van het boek niet in hun volgorde op.

3. Indexering op meerdere niveaus

Indexering op meerdere niveaus wordt gebruikt wanneer het aantal indices erg hoog is en de primaire index niet in het hoofdgeheugen kan worden opgeslagen. Zoals u wellicht weet, bestaan ​​database-indexen uit zoeksleutels en gegevensaanwijzers. Als de database groter wordt, groeit ook het aantal indices.

Om echter snel te kunnen zoeken, moeten indexrecords in het geheugen worden bewaard. Als een index op één niveau wordt gebruikt wanneer het indexnummer hoog is, is het onwaarschijnlijk dat die index in het geheugen wordt opgeslagen vanwege de grootte en meerdere toegangen.

Dit is waar indexering op meerdere niveaus in het spel komt. Deze techniek verdeelt de index op één niveau in meerdere kleinere blokken. Na het afbreken wordt het blok op het buitenste niveau zo klein dat het gemakkelijk in het hoofdgeheugen kan worden opgeslagen.

Verwant: Verbinding maken met een MySQL-database met Java

Wat is SQL-indexfragmentatie?

Wanneer een volgorde van de indexpagina's niet overeenkomt met de fysieke volgorde in het gegevensbestand, veroorzaakt dit fragmentatie van de SQL-index. Aanvankelijk zijn alle SQL-indexen fragmentatievrij, maar als u de database herhaaldelijk gebruikt (gegevens invoegen/verwijderen/wijzigen), kan dit fragmentatie veroorzaken.

Afgezien van databasefragmentatie, kan uw database ook met andere essentiële problemen worden geconfronteerd, zoals databasecorruptie. Het kan leiden tot gegevensverlies en een beschadigde website. Als u zaken doet met uw website, kan dit een fatale klap voor u zijn.

E-mail
SQL Server-gegevens zijn beschadigd? Probeer het te herstellen met SQL Recovery Toolbox

Recovery Toolbox for SQL Server helpt bij het repareren van de beschadigde MDF-bestanden van een MS SQL Server voor alle versies.

Lees volgende

Gerelateerde onderwerpen
  • Programmeren
  • SQL
  • Gegevensanalyse
  • database
Over de auteur
Zadhid A. Powell (12 artikelen gepubliceerd)

Zadhid Powell is een computeringenieur die het coderen opgaf om te gaan schrijven! Daarnaast is hij een digitale marketeer, technologieliefhebber, SaaS-expert, lezer en een scherp volger van softwaretrends. Vaak zie je hem met zijn gitaar in clubs in de binnenstad rocken of duiken op de oceaanbodem inspecteren.

Meer van Zadhid A. Powell

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Nog een stap…!

Bevestig uw e-mailadres in de e-mail die we u zojuist hebben gestuurd.

.