5

我目前正在运行的DELETE查询花费的时间比预期的要长(已经 10 小时!)。我想通过 phpmyadmin 进程杀死它,但是我担心会发生什么。他自动回滚是否也需要很多时间?当前查询状态显示“更新中”。

4

2 回答 2

2

这取决于您的查询现在所处的阶段。但通常回滚需要大约相同的时间,有时甚至比原始操作还要多。

根据本文档的第 2 点,这并不是真正可取的。

此外,请务必验证您的 MySQL 版本,因为它有一个非常讨厌的错误,根据本文,在某些版本中删除/更新查询回滚

重新启动/终止 MySQL 进程将无济于事,因为回滚将在重新启动时恢复。

于 2012-10-24T22:39:22.270 回答
2

拇指规则是:

让它自己回滚,甚至不要考虑重新启动数据库,因为它会在重新启动后恢复,但更糟糕的是您的数据库将无法同时访问。

是的,大量数据(即数百万行)的回滚将比其提交操作慢得多,如果并行 InnoDB 提交发生在同一数据库中,则速度会更慢。

于 2017-01-30T19:02:29.753 回答