MySQL创建表时提示“Row size too large”的解决方法

在Mysql创建表时,突然报出如下错误,导致无法继续:

修改数据库引擎

原因是Mysql默认数据库引擎是InnoDB,其innodb_file_format为barracuda,这种格式无法创建大表,因此需要将ENGINE改为MyISAM,可以修改my.cnf配置默认引擎,如下:

也可以在创建表时修改引擎方式(推荐),如下:

注意:MyISAM不支持事务处理,比如不能处理外键事务。

合理设置字段类型和长度

字段长度尽量设置合理,尤其是Varchar类型,有人认为该类型是按实际内容存储,设置再大也不浪费存储空间,这个说法没错,但是忽略了一点——值超出实际需求会浪费内存,还不如改用Text类型。

合理设置字段类型和长度对本文所述问题有什么帮助呢?这就要看表的大小了,如果表长度正好超出100字节,那么将Varchar(256)改为Varchar(128)就正好能解决问题。

修改行格式

创建表时添加如下参数:

以上三种方法,请根据实际情况选择。

原创文章禁止转载:技术学堂 » MySQL创建表时提示“Row size too large”的解决方法

精彩评论

2+7=

感谢您的支持与鼓励

支付宝扫一扫打赏

微信扫一扫打赏