Не, можете да индексирате булево поле, ако ще филтрирате по него. Това е напълно разумно нещо, въпреки че както при всички индекси, PostgreSQL може да избере да го игнорира, ако няма да изключи достатъчно от таблицата -- сканиране на индекс плюс много извличане на редове може да бъде по-скъпо от последователно сканиране - - което може или не може да ви повлияе в зависимост от стойностите в тази колона.
Трябва също да сте наясно, че PostgreSQL ви позволява да поставяте условия върху индекси, което често намирам за полезно с булеви полета. (Вижте Частични индекси
за подробности.) Ако обикновено филтрирате или сортирате в този обхват, може най-добре да ви помогне нещо като CREATE INDEX ... ON table (some_field) WHERE boolean_field
.