项目场景:
mysql添加varchar字段
问题描述
mysql表添加一个varchar类型的字段,执行保存时报错:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 6553 巴拉巴拉
原因分析:
行数据大小的最大限制为 65,535 字节。
如果表中包含多个 VARCHAR 类型的字段,并且它们的总长度超过了上述限制,则会出现 上述错误。这是因为 MySQL 在内部使用固定大小的页面来存储行数据,因此需要确保每个行都小于或等于页面大小。
比如我使用 utf8mb4 字符集,每个字符最多使用 4 个字节,因此表中所有VARCHAR类型字段
长度之和 * 4 要小于 65,535。
解决方案:
1.将一个或多个字段更改为使用 TEXT 类型或 BLOB 类型。
2.表中的某些字段更改为固定长度类型(如 CHAR)。