gpt4 book ai didi

mysql - 为什么 MySQL 将 Boolean 解释为 TINYINT(1) 而不是 BIT(1)?

转载 作者:可可西里 更新时间:2023-11-01 06:37:38 26 4
gpt4 key购买 nike

当只考虑两个可能的值,0 和 1 或 True 和 False 时,很明显 BIT(1) 做得更好:

  • BIT(1) 只强制使用 2 个可能的值:0 和 1,而 TINYINT(1) 可以接受任何小于 10 的整数值(0,1,2,3,4,5....),它可以是模棱两可。
  • 多个 BIT(1) 列可以组合成字节,因此它们比多个 TINYINT(1) 列需要更少的空间。

那么为什么 MySQL 将 Boolean 解释为 TINYINT(1) 而不是 BIT(1)?在处理 bool 值时使用 TINYINT(1) 比 BIT(1) 有什么优势吗?

最佳答案

这取决于版本和数据库引擎和驱动

  • BIT 在 5.05+ 中通过 MyISAM 和 InnoDB 得到了正确的支持
  • 需要告知某些 JDBC 驱动程序(例如 Kettle 的捆绑驱动程序)

但 BIT 当然比 TINYINT 更可取。
正是遗留和惯性让 TINYINT 保持......

关于mysql - 为什么 MySQL 将 Boolean 解释为 TINYINT(1) 而不是 BIT(1)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8671312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com