Nej, du kan indexera ett booleskt fält om du kommer att filtrera efter det. Det är en helt rimlig sak att göra, även om PostgreSQL, som med alla index, kan välja att ignorera det om det inte kommer att utesluta tillräckligt mycket av tabellen -- en indexskanning plus ett ton radhämtningar kan vara dyrare än en sekventiell skanning - - vilket kan eller kanske inte påverkar dig beroende på värdena i den kolumnen.
Du bör också vara medveten om att PostgreSQL låter dig sätta villkor på index, vilket jag ofta tycker är användbart med booleska fält. (Se partiella index
för detaljer.) Om du vanligtvis filtrerar eller sorterar inom det omfånget, kanske du är bäst betjänt av något som CREATE INDEX ... ON table (some_field) WHERE boolean_field
.