Direct naar de inhoud
xhosting

Database index

2 min. lezen

Wat is een database index en wat doet hij?

Een database index is een extra structuur die de database bijhoudt om gegevens sneller terug te vinden. Zonder index moet de database vaak alle rijen van een tabel doorlopen om de juiste te vinden.

Je kunt het vergelijken met het register achterin een boek. Wil je een onderwerp terugzoeken, dan kijk je eerst in het register in plaats van elke pagina te lezen. Een index werkt op dezelfde manier. Hij bevat de waarden van een of meer kolommen, in gesorteerde volgorde, met een verwijzing naar de rij waar die waarde staat.

Waarom een index zoeken versnelt

Een website zoekt voortdurend in de database: een bericht op basis van zijn adres, een bestelling op basis van een klantnummer, of alle artikelen uit een categorie. Zonder index moet de database dan veel rijen controleren. Met een index kan hij direct naar de juiste plek.

Dat verschil valt vooral op bij grote tabellen. Bij tien rijen merk je nauwelijks iets, bij tienduizenden rijen kan het verschil groot zijn. Een index helpt ook bij het sorteren en het koppelen van tabellen, mits je de juiste kolommen indexeert.

Een index helpt niet altijd. Zoeken met een joker vooraan, zoals alle woorden die op ‘fiets’ eindigen, kan de database vaak geen index gebruiken.

Waarom te veel indexen je database vertragen

Een index moet bij elke wijziging worden bijgewerkt. Voeg je een rij toe, dan moet de database ook alle bijbehorende indexen aanpassen. Veel indexen maken schrijven dus trager.

Een index kost bovendien opslagruimte. Houd daarom alleen indexen aan die echt worden gebruikt, bijvoorbeeld op kolommen die vaak in zoekopdrachten, koppelingen of sorteringen voorkomen. Indexen op alle kolommen zijn bijna altijd een slecht idee.

Een index is dus een afweging: sneller lezen tegen wat meer werk bij schrijven en extra opslag. Of die afweging voor jouw site goed uitpakt, zie je pas als je weet welke queries traag zijn. Zie waarom je database traag kan zijn. Hoe de opslagmethode van tabellen hierbij meespeelt, lees je in InnoDB vs MyISAM.

Veelgestelde vragen

Moet ik zelf indexen aanmaken in mijn database?

Meestal niet. Een CMS of plugin bevat vaak al indexen op de belangrijkste kolommen. Alleen als een specifieke zoekopdracht traag blijft, kan een extra index helpen. Laat zo’n wijziging dan beoordelen door een ontwikkelaar, zodat je geen indexen toevoegt die je niet nodig hebt.

Maakt een index mijn database groter?

Ja, een index neemt extra opslagruimte in beslag. Hoeveel hangt af van de tabel en de kolommen die je indexeert. Omdat elke wijziging ook de index bijwerkt, levert een index bovendien extra werk op. Verwijder indexen die niet meer nodig zijn. Meer over databases vind je in de kennisbank over databases.

Corrupte database

Een corrupte database is een database met beschadigde tabellen. Lees wat het betekent, welke oorzaken er zijn en waarom een recente back-up telt.

Aparte databaseserver

Een aparte databaseserver scheidt je database van de webserver. Lees wat dat oplevert voor schaal en stabiliteit, en welke nadelen zoals vertraging er...

Wat is een database

Wat is een database? Lees welke gegevens een website erin bewaart, waarom dynamische sites er niet zonder kunnen en wat je als eigenaar moet weten.