Innodb,更新数千条记录会导致锁定超时

时间:2016-05-31 13:51:49

标签: mysql

有一个重大更新:

UPDATE myBigTable SET x=0;

哪个不能完成,我得到SQL错误(1205),超出锁定等待超时。我试图关闭自动提交,仍然没有结果。如何更新?

编辑:我试图禁用自动提交,仍然没有快乐

2 个答案:

答案 0 :(得分:1)

您可以尝试像这样增加锁定时间段:

mysql> set innodb_lock_wait_timeout=100

其中100以秒为单位。

或者您可以尝试杀死实际锁定您的进程的进程,如:

mysql> kill processId;

答案 1 :(得分:0)

  

有一个重大更新:

您确定要更新所有表记录吗?你目前在做什么看起来不正确。您应该考虑使用A where过滤条件并执行更新;像UPDATE myBigTable SET x=0 WHERE id = value;如果你真的想要更新整个表记录,那么考虑批量使用它而不是一次性使用。