TINYINT 、 BIT 和 BOOL 是 MySQL 中不同类型的数值存储方式,主要区别如下:
TINYINT
存储空间:1字节(8位),适合存储小范围整数(有符号:-128~127,无符号:0~255)
用途:常用于存储状态标志、年龄等小数值场景,可节省75%存储空间相比 INT 类型
符号位:默认有符号,通过最高位区分正负(0为正,1为负)
BIT
存储空间:可变位数(1~64位),用于存储二进制数据
用途:常用于位字段操作,如权限设置(每个bit代表不同权限)
显示方式:默认以十六进制显示(如显示为字母A代表十进制的10)
BOOL
存储空间:通常占用1字节(8位),与TINYINT兼容
用途:逻辑判断类型,仅支持0(false)或1(true)两个值
兼容性:在MySQL中通常用TINYINT代替,需配合 UNSIGNED属性 明确标识逻辑类型
总结:
TINYINT适合存储小范围整数,BIT适合二进制位操作,BOOL仅用于逻辑判断
BOOL在MySQL中需通过TINYINT的无符号属性实现,需明确字段属性区分用途