PostgreSQL vil kun bruge et indeks, hvis det tror, det vil være billigere på den måde. Et indeks på en boolean
kolonne, som kun kan tage to mulige værdier, vil næsten aldrig blive brugt, fordi det er billigere at læse hele tabellen sekventielt end at bruge tilfældig I/O på indekset og tabellen, hvis en høj procentdel af tabellen skal hentes .
Et indeks på en boolean
kolonne er kun nyttig
-
i datavarehus-scenarier, hvor det kan kombineres med andre indekser via en bitmap-indeksscanning .
-
hvis kun en lille del af tabellen har værdien
TRUE
(ellerFALSE
for den sags skyld). I dette tilfælde er det bedst at oprette et delvist indeks synes godt omCREATE INDEX ON mytab((1)) WHERE boolcolumn;