CREATE INDEX

Op deze pagina:

Bij het uitvoeren van een query moet de hele tabel worden langsgelopen om alle waarden te vinden die voldoen. Dit proces kan versneld worden door een index te plaatsen op één of meerdere kolommen. Een index is een aparte lijst waar de waarden van één of meerdere kolommen gesorteerd staan. Een index bevat pointers naar de tabel van de kolom(men) waar de index op gebaseerd is en versneld zo het vinden van de juiste waarden.

Kolommen die je vaak gebruikt in de WHERE gedeelten van query's zijn de meest logische kandidaten voor indexen.

Als naam voor een index wordt meestal de tabelnaam gebruikt, gevolgd door de kolomnaam en aangevuld met idx om aan te geven dat het hier om een index gaat.

Voorbeeld in psql:


test=# CREATE INDEX personen_achternaam_idx ON personen(achternaam);
CREATE INDEX

Resultaat:


test=# SELECT tablename, indexname, indexdef
test-# FROM pg_indexes
test-# WHERE schemaname = 'public';

 tablename |        indexname        |                                     indexdef                                     
 persoonid  | integer                |           |          | 
 achternaam | character varying(255) |           |          | 
 voornaam   | character varying(255) |           |          | 
 adres      | character varying(255) |           |          | 
 stad       | character varying(255) |           |          | 
Indexes:
    "personen_achternaam_idx" btree (achternaam)
    "personen_achternaam_voornaam_idx" btree (achternaam, voornaam)

Een index verwijderen kan met de DROP INDEX opdracht.

Unique indexen

Unique indexen zijn indexen die geen dubbele waarden toestaan. Bij multikolom indexen zorgt dit ervoor dat de combinatie van de waarden uniek moet zijn. Als geprobeerd wordt waarden toe te voegen die reeds in die combinatie bestaan, dan volgt een foutmelding. Unique indexen staan wel meerdere NULL waarden toe.

Algemeen vorm:


CREATE UNIQUE INDEX tabelnaam_kolom1_kolom2_idx ON tabelnaam(kolom1,kolom2)

 

Verwante artikelen