web-dev-qa-db-fra.com

Bit vs. colonnes booléennes

Étant donné que les champs de bits ne sont que des représentations binaires de données et doivent être interrogées de manière légèrement "étrange".

Fournit-il en fait un avantage en utilisant un champ de bit pour une valeur booléenne? D'après ce que je peux voir, il semble suggérer que l'espace est le seul bénéfice réel.

12
Mark D

Personnellement, j'utiliserais le BOOLEAN pour une valeur booléenne. Mais gardez à l'esprit la mise en garde que dans MySQL, BOOLEAN est juste un synonyme de TINYINT(1)[SRC] .

Bien entendu, cela signifie que vous pouvez avoir des valeurs autres que 0 ou 1 si vous ne faites pas attention. Pour éviter cela, vous pouvez utiliser les alias TRUE et FALSE lors de l'insertion et de la mise à jour des données, telles que la carte à 1 et 0 respectivement.

Par souci d'être complet, avant 5,0,3, BIT était également synonyme de TINYINT(1).

14
Derek Downey