繁体   English   中英

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

[英]Why does MySQL's boolean type map to a tinyint instead of an enum?

在枚举上使用tinyint(1)是否存在性能或兼容性原因? 别的什么?

您可能会感兴趣的是, MySQL会使用整数对ENUM进行索引

自1999年以来,SQL标准包含一个布尔数据类型 - 有效值为true,false,unknown或null。 跨各种数据库系统的实现是不稳定的

MySQL不支持真正的布尔数据类型 - BOOLEAN映射到TINYINT,它只占用1个字节。 MySQL将0解释为false,其他所有数字都为true。

具有最多8个值的枚举存储在一个字节中。 tinyint也存储在int中。 所以没有区别。 MySQL不知道bools所以人们使用其中任何一个选项,性能等等。这没什么区别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM