PostgreSQL użyje indeksu tylko wtedy, gdy uzna, że w ten sposób będzie tańszy. Indeks na boolean kolumna, która może przyjmować tylko dwie możliwe wartości, prawie nigdy nie zostanie użyta, ponieważ tańsze jest sekwencyjne odczytywanie całej tabeli niż użycie losowych operacji we/wy na indeksie i tabeli, jeśli trzeba pobrać duży procent tabeli .
Indeks na boolean kolumna jest przydatna tylko
-
w scenariuszach z hurtowniami danych, w których można go łączyć z innymi indeksami za pomocą skanowania indeksu mapy bitowej .
-
jeśli tylko niewielka część tabeli ma wartość
TRUE(lubFALSEz tego powodu). W takim przypadku najlepiej jest utworzyć częściowy indeks lubięCREATE INDEX ON mytab((1)) WHERE boolcolumn;