Вообще говоря, нет. Поле с двумя состояниями не ускоряет запросы при индексации, потому что в среднем приходится просматривать половину строк. Вы хотите, чтобы ваши записи индекса были выборочными - данная запись в индексе должна представлять лишь небольшой процент возможных значений (скажем, менее 10%, предпочтительно в долях процента). Затем при использовании индекса игнорируется большая часть данных в таблице, что дает вам выигрыш в производительности.
Некоторые СУБД поддерживают растровые индексы. Они могут помочь, но вы все еще сталкиваетесь с проблемой избирательности.
В обновленном вопросе говорится, что число значений со значением 1 будет небольшим (менее одного процента); будет ли индекс сейчас приносить вам пользу?
Ответ:
Для тех запросов, в которых вы указываете, что значение равно 1, тогда да, индекс столбца может обеспечить преимущество при условии, что оптимизатор фактически использует этот индекс. Возможно, вам придется настроить СУБД, чтобы она поняла, что индекс искажен в пользу использования его с запросами, где значение равно 1; это, как правило, специфично для СУБД, но обновление статистики в разных ипостасях - это название игры, возможно, с использованием подсказок и в запросах SQL. Конечно, если оптимизатор никогда не использует индекс, он все равно не дает никакой пользы - и оптимизатор может решить, что другие индексы каким-то образом ему помогут.
Для тех запросов, где значение равно 0, индекс не должен использоваться. Однако есть вероятность, что СУБД продолжит поддерживать индекс для значений 0 - даже если им никогда не следует их использовать. Это была бы необычная СУБД, которой можно было бы дать команду «только индексировать этот столбец для значений, отличных от нуля», даже если это было бы очень полезно.
Итак - это зависит. Это зависит от запросов и оптимизатора.
Обратите внимание, что составной индекс - для некоторых других обычно используемых столбцов, а затем для битового поля - вполне может обеспечить некоторое преимущество. Таким образом, если вы почти всегда выбираете диапазон дат, то составной индекс по столбцам даты и битового поля (вероятно, в таком порядке) должен предоставить вам хороший индекс.