PostgreSQL utilizzerà un indice solo se pensa che sarà più economico in questo modo. Un indice su un boolean
la colonna, che può assumere solo due valori possibili, non verrà quasi mai utilizzata, perché è più economico leggere in sequenza l'intera tabella che utilizzare I/O casuali sull'indice e sulla tabella se è necessario recuperare una percentuale elevata della tabella .
Un indice su un boolean
la colonna è solo utile
-
in scenari di data warehouse, dove può essere combinato con altri indici tramite una scansione dell'indice bitmap .
-
se solo una piccola parte della tabella ha il valore
TRUE
(oFALSE
per questo motivo). In questo caso è meglio creare un indice parziale comeCREATE INDEX ON mytab((1)) WHERE boolcolumn;