statement transaction required more than 'max_binlog_cache_size' bytes of storage

本文介绍了一种在遇到SQL批量更新导致的最大的binlog缓存大小错误时的解决方案。通过逐步减小更新范围来避免内存溢出,确保数据正确更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司开发环境中 发现某个字段值(is_face) 的数据全部错了,需要统一更新为 0

之后我写了SQL执行修改UPDATE table SET is_face = 0;  结果报了这样的错,如下:


翻译过来:语句事务大于“最大的binlog缓存大小”的存储字节;
人话是:修改的条数太多啦,你他妈的要改多少行,我内存里都放不下你的修改记录了;你应该把这个配置数改大点知道不

想一想,原来我这张表的数据量是  10万+,就说改不了;
于是,修改 max_binlog_cache_size 的字节数,改大点SQL:set global max_binlog_cache_size=1048576;(或者直接改配置文件)
尴尬的是,我没有改配置的权限~


怎么办呢?既然是不让我修改这么多条,我就少修改点呗~
于是乎,SQL就变成了这样了UPDATE media_film_photo SET is_face = 0 WHERE id >0 and id <10000;
好了,大功告成,修改成功,受影响行数 9986(之前 有is_face是0的数据)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值