Een index versnelt het ophalen van gegevens. Zonder index scant de database elke rij om overeenkomende records te vinden. Met een index springt de database direct naar de relevante rijen. De index is een aparte datastructuur die waarden koppelt aan locaties. Een boekenindex werkt op dezelfde manier. Je zoekt een term op en vindt het paginanummer. Je hoeft niet elke pagina te lezen om het te vinden. De database doet hetzelfde.
Indexen hebben een prijs. Ze nemen ruimte in beslag. Ze vertragen invoegingen, updates en verwijderingen omdat de index ook moet worden bijgewerkt. Elke schrijfbewerking wordt duurder. Het voordeel is sneller lezen. Voor workloads met veel leesbewerkingen zijn indexen essentieel. Voor workloads met veel schrijfbewerkingen kunnen te veel indexen de prestaties negatief beïnvloeden. Om te bepalen welke kolommen geïndexeerd moeten worden, is inzicht in de querypatronen vereist. Kolommen die worden gebruikt in WHERE-clausules, JOIN-voorwaarden en ORDER BY-clausules zijn goede kandidaten. Kolommen met een lage kardinaliteit, zoals een booleaanse vlag, zijn minder geschikt omdat de index de zoekopdracht niet significant verfijnt. Samengestelde indexen omvatten meerdere kolommen en kunnen query's ondersteunen die filteren op meerdere velden. De volgorde van de kolommen in een samengestelde index is belangrijk. De database kan een samengestelde index gebruiken voor query's op de eerste kolom, maar niet alleen op de laatste kolommen. Indexontwerp is een afweging. Het doel is om de query's die ertoe doen te versnellen zonder de schrijfbewerkingen meer dan nodig te vertragen.
Indextypen
- B-boom — standaard voor de meeste databases, goed voor bereikquery's
- Hash — snelle gelijkheidszoekacties, geen bereikondersteuning
- Bitmap — kolommen met lage kardinaliteit, analytische zoekopdrachten
- Volledige tekst — tekst zoeken
- Samengesteld — meerdere kolommen in één index
Een index is een snelkoppeling. Schrijfsnelheid en opslagruimte worden ingeruild voor leessnelheid. Gebruik een index waar leesbewerkingen het belangrijkst zijn.
Comments (3)
Leave a comment