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 :)

本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/308351,如需转载请自行联系原作者

点赞