postgres=# \d test Table "public.test" Column | Type | Modifiers --------+---------+----------- bit | boolean | but | integer | postgres=# select count(*) from test; count --------- 1010023 (1 row) postgres=# select count(but) from test where bit; count ------- 1049 (1 row) postgres=# explain select but from test where bit limit 1000; QUERY PLAN ----------------------------------------------------------------- Limit (cost=0.00..7451.00 rows=1000 width=4) -> Seq Scan on test (cost=0.00..15051.03 rows=2020 width=4) Filter: "bit" (3 rows) postgres=# create index bits on test(bit); CREATE INDEX postgres=# explain select but from test where bit limit 1000; QUERY PLAN ---------------------------------------------------------------------------- Limit (cost=0.00..62.88 rows=1000 width=4) -> Index Scan using bits on test (cost=0.00..127.02 rows=2020 width=4) Index Cond: ("bit" = true) Filter: "bit" (4 rows)