PostgreSQL zal alleen een index gebruiken als het denkt dat het op die manier goedkoper zal zijn. Een index op een boolean
kolom, die slechts twee mogelijke waarden kan aannemen, zal bijna nooit worden gebruikt, omdat het goedkoper is om de hele tabel sequentieel te lezen dan om willekeurige I/O op de index en de tabel te gebruiken als een hoog percentage van de tabel moet worden opgehaald .
Een index op een boolean
kolom is alleen nuttig
-
in datawarehouse-scenario's, waar het kan worden gecombineerd met andere indexen via een bitmap-indexscan .
-
als slechts een klein deel van de tabel de waarde
TRUE
heeft (ofFALSE
wat dat betreft). In dit geval kunt u het beste een gedeeltelijke index maken leuk vindenCREATE INDEX ON mytab((1)) WHERE boolcolumn;