5

我有一个包含 21M 记录的 MySQL 数据库,我正在尝试对大约 1M 记录进行更新,但查询失败ERROR 1206 (HY000): The total number of locks exceeds the lock table size.

是否可以在不获取锁的情况下更新表?

我无权更改 MySQL 配置参数,例如innodb_buffer_pool_size. 有没有不同的方法来实现相同的目标?

谢谢

编辑

  1. 我已经分批尝试了 5000 个,它工作了几次,但我得到了同样的错误
  2. 我试过 LOCK TABLES 来锁定整个表,但它仍然不起作用。
4

2 回答 2

3

我认为您可以使用 limit 子句进行批量更新。

于 2011-02-02T15:17:35.683 回答
1

尝试在表级别而不是行级别锁定。使用LOCK TABLES MyTable WRITE. 这可能会解决问题。虽然没有保证!不要忘记解锁桌子!

于 2011-02-02T15:22:02.940 回答