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
(lubFALSE
z tego powodu). W takim przypadku najlepiej jest utworzyć częściowy indeks lubięCREATE INDEX ON mytab((1)) WHERE boolcolumn;