juejin.cn

bittinyint的对比与隐式转换问题

特性 bit(1) tinyint(1)
存储类型 二进制值(b'0'b'1' 整数值(01,但可存储更大范围)
最小存储单元 1 位,但在计某些算机硬件上,字节才是最小的存储单元,MySQL会将其存储为一个字节(8位),这意味着即使只使用1位,也会占用与TINYINT相同的空间。应该是多数 1 字节
存储范围 仅支持01 有符号:-128~127;无符号:0~255
默认显示格式 二进制字符串(如b'1' 整数(如1

隐式转换规则与索引问题

bit类型的隐式转换

tinyint类型的隐式转换

结论

2025 年了

内存啥价钱、磁盘啥价钱,这能节约几个钱

省下来这点钱都不够出一问题的,我基本都用 tinyint 来存储 boolean 格式

工作经验告诉我,不要考虑太省钱(特别是细节的地方,要给自己留安全生产余地和优化空间)

  1. ECS 迁移的时候,做备份也就几毛钱几块钱,没有做,数据差点丢失
  2. ‣ 我考虑节约空间,出问题要自己背
  3. **线上问题-我就加了个索引怎么就导致线上事故了 忽然看到这篇文章分享,才发现还有这个知识点**