MYSQL Row size too large (> 8126)

开发时遇到的数据无法入库问题,报错:
(1118, ‘Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help . In current row format, BLOB prefix of 768 bytes is stored inline.’)

主要是由于某条记录超过了mysql默认引擎的最大存储。
mysql默认的Innodb引擎的页结构大小为16kb,可以存储多条记录。
当记录的大小超过页结构对记录大小的限制时,就会报次问题的错误。

首先,页结构对记录大小的限制默认为略小于8k,即最少存两条8kb左右的记录。
可以使用compressed行格式,barracuda格式来处理。

但实际上出现这个问题可能是MySQL的innodb引擎的一个bug。
在修改行格式无效的情况下,除了将引擎改为MylSAM,行格式设置为DYNAMIC格式外,其他的办法都没用(比如使用compressed行格式或者barracuda行格式都没用)

https://bugs.mysql.com/bug.php?id=77398

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值