Para SQL Server:hasta 8 columnas de tipo BIT
se puede almacenar dentro de un solo byte, mientras que cada columna de tipo CHAR(1)
ocupará un byte.
Por otro lado:un BIT
la columna puede tener dos valores (0 =falso, 1 =verdadero) o ningún valor (NULL), mientras que un CHAR(1)
puede tener cualquier valor de carácter (muchas más posibilidades)
Realmente, todo se reduce a:
- ¿realmente necesita un campo verdadero/falso (sí/no)? Si es así:usa
BIT
- ¿Necesita algo con más de dos valores posibles? Utilice
CHAR(1)
No creo que haga ninguna diferencia significativa, desde el punto de vista del rendimiento, a menos que tenga decenas de miles de columnas. Luego, por supuesto, usando BIT
que puede almacenar hasta 8 columnas en un solo byte sería beneficioso. Pero nuevamente:para el caso de su base de datos "normal", donde tiene unas pocas, una docena de esas columnas, realmente no hace una gran diferencia. Elija el tipo de columna que se adapte a sus necesidades - no te preocupes demasiado por el rendimiento...