作者:小虾米 发表时间:2019-11-08 16:47:41 类别:MySql
跟字符集有关(gbk-2B,urf8-3B,utf8mb4-4B)
跟当前表所有varchar列总长度有关
例:当前表结构如下
CREATE TABLE `test` (
`id` int(11) NOT NULL,
`age` tinyint(5) NOT NULL DEFAULT '0',
`sex` char(2) NOT NULL DEFAULT '',
`des` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
如果需要再加一个varchar类型的字段,最大长度计算方式为:
减1:实际行存储从第2个字节开始
减2:varchar头部的2个字节表示长度
减4:int类型占4个字节
减1:tinyint类型占1个字节
减2*4和减255*4:char和varchar类型一个字符占4个字节(utf8mb4)
所以,新的字段长度最大为16124