ERROR 1206 (HY000): The total number of locks exceeds the lock table size 错误解决

本文介绍了解决MySQL在删除大量数据时遇到的锁超限错误问题。通过调整innodb_buffer_pool_size参数并重启MySQL服务,成功解决了该问题。此外,还提供了一种备选方案,即使用LIMIT分批删除。
错误现象如下:
mysql> DELETE FROM JHF_CP_SPOT_RATE WHERE FRONT_DATE = '20070801';
ERROR 1206 (HY000): The total number of locks exceeds the lock table size
把 delete 改成 select,再explain一下,发现返回结果高达300多万,于是检查 max_write_lock_count 的值,是 8446744073709551615,肯定够用了。
再看看 innodb_buffer_pool_size,我的天,才设置默认的 8M,该死的。加大到合适的值,重启 mysql,一切ok。
还有一招,就是delete时分成多次,每次用 LIMIT 限定记录数,这样也ok :)
本文出自 “MySQL中文网”博客 http://www.imysql.cn/
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值