我目前正在运行一个DELETE
查询,这个查询花费的时间比预期的要长很多(已经10小时了!)。我想通过phpmyadmin进程杀死它,但是我担心会发生什么。回滚他会自动花费很多时间吗?当前查询状态显示“正在更新”。
答案 0 :(得分:2)
这取决于您的查询现在的阶段。 但一般来说,回滚需要大约相等的时间,有时甚至比原始操作更多。
根据this document的第2点,这不是真的可取。
此外,请务必验证您的MySQL版本,因为它有一个非常讨厌的错误,删除/更新查询在某些版本中按照this article回滚
重新启动/终止MySQL进程无效,因为重启后将恢复回滚。
答案 1 :(得分:2)
Thumb规则是:
让它自己回滚,甚至不考虑重新启动 数据库,因为它将在重新启动后恢复,但更糟糕的是你的数据库不会 同时可以访问。
是大量数据(即数百万行)的回滚将比其提交操作慢得多,如果并行InnoDB提交发生在同一个数据库中则更慢。