MySQL报错:Row size too large。

项目场景:

mysql添加varchar字段


问题描述

mysql表添加一个varchar类型的字段,执行保存时报错:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 6553 巴拉巴拉

MySQL报错:Row size too large。_第1张图片


原因分析:

行数据大小的最大限制为 65,535 字节。
如果表中包含多个 VARCHAR 类型的字段,并且它们的总长度超过了上述限制,则会出现 上述错误。这是因为 MySQL 在内部使用固定大小的页面来存储行数据,因此需要确保每个行都小于或等于页面大小。

比如我使用 utf8mb4 字符集,每个字符最多使用 4 个字节,因此表中所有VARCHAR类型字段
长度之和 * 4 要小于 65,535。


解决方案:

1.将一个或多个字段更改为使用 TEXT 类型或 BLOB 类型。
2.表中的某些字段更改为固定长度类型(如 CHAR)。

你可能感兴趣的:(MySQL,mysql,数据库)