En términos generales, no. Un campo biestado no acelera las consultas cuando se indexa porque tiene que mirar la mitad de las filas en promedio. Desea que sus entradas de índice sean selectivas: una entrada determinada en el índice debe representar solo un pequeño porcentaje de los valores posibles (por ejemplo, menos del 10%, preferiblemente en las fracciones de un porcentaje). Luego, usar el índice ignora la mayoría de los datos en la tabla, que es lo que le da un beneficio de rendimiento.
Algunos índices de mapa de bits de soporte DBMS. Pueden ayudar, pero aún te encuentras con el problema de la selectividad.
La pregunta actualizada dice que el número de valores con valor 1 será pequeño (menos del uno por ciento); ¿un índice le dará un beneficio ahora?
La respuesta es:
Para aquellas consultas que se especifica que el valor es 1, entonces sí, un índice en la columna podría proporcionar un beneficio, siempre que el optimizador en realidad hace uso del índice . Es posible que necesite modificar el DBMS para que se dé cuenta de que el índice está sesgado a favor de usarlo con consultas donde el valor es 1; esto tiende a ser específico de DBMS, pero actualizar las estadísticas en varias formas es el nombre del juego, posiblemente usando sugerencias en las consultas SQL también. Por supuesto, si el optimizador nunca usa el índice, aún no proporciona ningún beneficio, y el optimizador puede decidir que otros índices lo ayuden más de alguna manera.
Para aquellas consultas donde el valor es 0, el índice no debe ser utilizado. Sin embargo, lo más probable es que el DBMS continúe manteniendo el índice para los valores 0, aunque nunca debería usarlos. Sería un DBMS inusual que podría ordenarse 'solo indexar esta columna para los valores distintos de cero', aunque sería muy beneficioso.
Así que - depende. Depende de las consultas, y depende del optimizador.
Nota también que un índice compuesto - en algunas otras columnas que se usan habitualmente y luego el campo de bits también pueden proporcionar algún beneficio. Entonces, si casi siempre eliges en un rango de fechas, entonces un índice compuesto en las columnas de fecha y campo de bit (probablemente en ese orden) debería proporcionarte un buen índice.