首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果我终止一个巨大的MySQL InnoDb DELETE查询,会发生什么?

问如果我终止一个巨大的MySQL InnoDb DELETE查询,会发生什么?
EN

Stack Overflow用户
提问于 2012-10-25 06:34:23
回答 2查看 5.7K关注 0票数 5

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-25 06:39:22

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

根据this document的第二点,这并不是真正可取的做法。

此外,请务必验证您的MySQL版本,因为根据this article,某些版本中的删除/更新查询回滚存在非常严重的错误

重启/终止MySQL进程不会有任何帮助,因为回滚将在重启后恢复。

票数 2
EN

Stack Overflow用户

发布于 2017-01-31 03:02:30

经验法则是:

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

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13058861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档