Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL :Quoi de mieux qu'un Bit ou un char(1)

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.....