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

错误现象如下:

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 5.1的时候,错误代码重新编排了?为什么我显示1206错误信息是:网络连接配置文件损坏。