错误现象如下:
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。
再看看 innodb_buffer_pool_size,我的天,才设置默认的 8M,该死的。加大到合适的值,重启 mysql,一切ok。
还有一招,就是delete时分成多次,每次用 LIMIT 限定记录数,这样也ok :)
本文出自 “MySQL中文网”博客
http://www.imysql.cn/