在枚举中使用tinyint(1)是否存在性能或兼容性原因?还有别的吗?
答案 0 :(得分:2)
您可能会感兴趣的是MySQL indexes ENUMs with integers。
自1999年以来,SQL标准包含一个布尔数据类型 - 有效值为true,false,unknown或null。 Implementation across various database systems is spotty
MySQL不支持真正的布尔数据类型 - BOOLEAN映射到TINYINT,它只占用1个字节。 MySQL将0解释为false,其他所有数字都为真。
答案 1 :(得分:1)
最多包含8个值的枚举存储在一个字节中。 tinyint也存储在int中。所以没有区别。 MySQL不知道bools所以人们使用其中任何一个选项,性能等等。这没什么区别。