Ga naar inhoud

Header

Indexeren

Introductie

Het gebruik van indexes is een manier om met betere performance gebruik te maken van een database.

Door van een index gebruik te maken kun je resultaten sneller ophalen.

Dit is vooral handig bij grote datasets.




1. Voorbeeld indexeren

We bekijken hoe indexeren werkt aan de hand van een voorbeeld.




1.1. Tabel scores

We bekijken een tabel met scores van studenten voor toetsen:

score_id score student_id
1 5.2 1
2 8.0 1
3 7.6 2
4 3 1
5 8.2 3
6 8.9 3
7 5.5 2

In deze tabel zien we 3 kolommen:

  • score_id: Een uniek id.
  • score: De score voor een toets.
  • student_id: Het id van een student.




1.2. Probleemstelling

Stel we willen de volgende query uitvoeren:

SELECT
  *
FROM
  scores
WHERE
  student_id = 2;

In dat geval checkt de query voor iedere rij of een waarde in kolom student_id gelijk is aan 2.

Als er veel records in de tabel staan, kan dit lang duren.




1.3. Oplossing indexeren

Als we een index toe zouden passen op kolom student_id, zou er iets als volgt gebeuren:

score_id score student_id
1 5.2 1
2 8.0 1
4 3 1
3 7.6 2
7 5.5 2
5 8.2 3
6 8.9 3

De index brengt orde aan.

Hierdoor is makkelijker en dus sneller te vinden welke rijen een bepaald student_id hebben.

Dit is een versimpelde weergave. In werkelijkheid wordt de tabel niet opnieuw gesorteerd.




2. Index maken syntax

Je kunt een kolom (of kolommen) in een tabel als volgt als index maken:

CREATE INDEX <index_name>
ON <table_name> (<column_1>, <column_2>, ...);

Bijvoorbeeld, voor de kolom student_id in tabel students:

CREATE INDEX idx_student_id
ON students (student_id);




Samenvatting

  • Een index zorgt voor snellere zoekresultaten.
    • Betere performance van een query.
  • Er zijn diverse opties, we hebben hier een eerste voorbeeld bekeken.