为什么MySQL的布尔类型映射到tinyint而不是枚举类型?

3
有没有性能或兼容性方面的原因,使得选择tinyint(1)比枚举更好?还是有其他原因?

“零=false,非零=true”是许多编程语言中常见的概念,非常简单。然而,使用字符串则有很多可能性:Y/N、T/F、yes/no、true/false、TRUE/FALSE、sí/no等等……如果您能防止该列存储2就好了…… - Álvaro González
1
根据《高性能MySQL》的说法,存储布尔值的最有效方式是使用可空的CHAR(0)。 - guidoism
2个回答

2

1
一个最多有8个值的枚举类型可以存储在一个字节中。一个 tinyint 也可以被存储在整数中,所以它们没有区别。MySQL 不支持布尔类型,因此人们使用其中的任一选项,以获得更好的性能等。这并不影响结果。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接