Pour SQL Server :jusqu'à 8 colonnes de type BIT
peut être stocké dans un seul octet, tandis que chaque colonne de type CHAR(1)
occupera un octet.
D'autre part :un BIT
la colonne peut avoir deux valeurs (0 =faux, 1 =vrai) ou aucune valeur (NULL) - tandis qu'un CHAR(1)
peut avoir n'importe quelle valeur de caractère (beaucoup plus de possibilités)
Donc, en réalité, cela se résume à :
- avez-vous vraiment besoin d'un champ vrai/faux (oui/non) ? Si oui :utilisez
BIT
- avez-vous besoin de quelque chose avec plus que deux valeurs possibles ? Utilisez
CHAR(1)
Je ne pense pas que cela fasse une différence significative, du point de vue des performances - à moins que vous n'ayez des dizaines de milliers de colonnes. Alors bien sûr, en utilisant BIT
qui peut stocker jusqu'à 8 colonnes dans un seul octet serait bénéfique. Mais encore une fois :pour votre cas de base de données "normal", où vous avez quelques, une douzaine de ces colonnes, cela ne fait vraiment pas une grande différence. Choisissez le type de colonne qui s'adapte à vos besoins - ne vous souciez pas trop des performances.....