我经常有表格,我需要存储一个标志,可以是1或0(真或假等)。
我之前使用过TINYINT。
我应该改用BIT(1)吗?为什么或为什么不呢?
答案 0 :(得分:11)
如果您使用的mysql版本大于5.0.3 Bit
不再是Tinyint
的别名,但如果您创建了bit
列,它仍会获得1 Byte
。
所以使用Bit(1)
或Tinyint(1)
是相同的,如果您的表只有1 Bit
列,则您无法获益。
但如果您有更多的真/假列,我建议您使用Bit
,因为位列的每个值都放在同一个1 Byte
中,直到它被填充。
如果你使用低于5.0.3的mysql然后使用tinyint
或bit
完全没问题。如果你查看bool
类型的mysql文档,你会发现它是tinyint
的别名
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
BOOL,BOOLEAN
这些类型是TINYINT(1)的同义词。值为零 假。非零值被认为是真的:
BIT是TINYINT(1)的同义词。