目录
一:问题
最近在mysql表中创建字段的时候提示
这个提示的意思是mysql行大小的限制为65535,不包含text和blobs类型,建议调整一些列为这两个类型。
二:分析
1: 我们查看这个表的所有字段的长度
sELECT COLUMN_NAME, sum(CHARACTER_MAXIMUM_LENGTH)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'db_name' AND TABLE_NAME = 'table_name';
2: 我的表结构
3: 计算方式
表类型是utf8mb4,varchar类型一个字符占4个字节,int占4个字节
因此总长度是 16381 * 4 + 4 = 65528,如果设置t2为6382就会提示超过限制。
4:各字段类型的长度
varchar(100) utf8mb4:100 * 4 utf8: 100 * 3
int utf8mb4:4 utf8: 4
tinyint utf8mb4: 1 utf8: 1
5:变更类型为text
如果需要增加字段可以将varchar转化为text,这样可以保存