Nie, możesz zindeksować pole logiczne, jeśli będziesz filtrować według niego. Jest to całkiem rozsądna rzecz, chociaż tak jak w przypadku wszystkich indeksów, PostgreSQL może zdecydować się na zignorowanie tego, jeśli nie wykluczy wystarczającej ilości tabeli -- skanowanie indeksu plus tona pobierania wierszy może być droższe niż skanowanie sekwencyjne - - co może, ale nie musi mieć na Ciebie wpływu, w zależności od wartości w tej kolumnie.
Należy również pamiętać, że PostgreSQL pozwala na umieszczanie warunków na indeksach, co często przydaje się w przypadku pól logicznych. (Zobacz Indeksy częściowe
aby uzyskać szczegółowe informacje.) Jeśli będziesz często filtrować lub sortować w tym zakresie, najlepiej może być obsługiwane przez coś takiego jak CREATE INDEX ... ON table (some_field) WHERE boolean_field
.