In een MySQL-database tabel kunnen verschillende soorten indexen worden gebruikt om de prestaties van zoekopdrachten te verbeteren. Indexen worden gebruikt om snel rijen met specifieke kolomwaarden te vinden. Zonder een index moet MySQL beginnen met de eerste rij en vervolgens door de hele tabel lezen om de relevante rijen te vinden. Hoe groter de tabel, hoe meer dit kost.
De meest voorkomende indexen zijn PRIMARY KEY, UNIQUE, INDEX en FULLTEXT.
De meeste MySQL-indexen (PRIMARY KEY, UNIQUE, INDEX en FULLTEXT) worden opgeslagen in B-trees.
Een B-tree is een soort zoekboom die wordt gebruikt om gegevens op een georganiseerde manier op te slaan en snel te kunnen zoeken. In tegenstelling tot een binaire zoekboom, waarbij elke knoop maximaal twee kinderen heeft, kan een B-tree knooppunten hebben met meer dan twee kinderen. Dit maakt het mogelijk om grote hoeveelheden gegevens efficiënt op te slaan en te doorzoeken.
Je kunt het zien als een grote boom met veel takken en bladeren. De takken zijn de knooppunten en de bladeren zijn de gegevens die worden opgeslagen. Wanneer je naar een specifiek stukje informatie zoekt, volg je de takken van de boom totdat je bij het juiste blad aankomt. Door de manier waarop de boom is georganiseerd, kan dit snel en efficiënt gebeuren.