mysql 对于 varchr 类型,若位数小于 256,会多加一个字节存储(用来保存长度),大于 255 的会多加两个字节存储,详见 mysql 文档。
VARCHAR(_`M`_)
, VARBINARY(_`M`_)
L
+ 1 bytes if column values require 0 ? 255 bytes, L
+ 2 bytes if values may require more than 255 bytes
为什么我用 LENGTH
函数得到的字节数没有加上呢?
SELECT LENGTH('a'); -- 1,为什么不是 2?
-- 从表字段里面计算也是一样的
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…