我有几百万行删除,但不能一次删除,没有这个错误
错误1206(HY000):锁的总数超过锁表大小
于是我写了一个脚本,一次删除100,000行。 它运行一次,但是当我第二次运行它时,第一次尝试删除10,000时出现错误。
我试图删除10,000行的方式是使用引用所有200万行的删除语句,但我使用限制子句只影响10,000。
我试过添加一个“解锁表”; 声明到第一次删除脚本之前,但这并没有帮助。 我仍然得到第一次删除锁表错误。
任何想法,我可以做到这一点?
有没有办法我可以告诉它不要lockinglogging? 我可以确保没有别的访问表。
它是InnoDB存储引擎吗?
这个错误意味着MySQL没有足够的空间来存储执行查询所需的所有行锁。 取决于你拥有的RAM,将innodb_buffer_pool_size
设置为一个合理的值(256MB,512MB),你可能永远不会遇到这个错误。
使用mysql> show global variables like 'innodb_buffer%';
检查默认值mysql> show global variables like 'innodb_buffer%';
。