mysql - 在完成之前停止 MySQL 删除查询

标签 mysql

我试图从我的 MySQL 表中删除一些行,该表有 2 亿行。虽然一开始它运行良好,但几个小时后速度会急剧下降。我希望我现在可以停止查询并重新启动它,从而让它更快地发生。之后我的数据库会保持完整吗?

最佳答案

您可以通过终止启动它的 session 来终止当前的删除操作。为此,您可以使用已经提到的从其他 session 发出的 KILL 语句,或者如果您的删除是从某些客户端代码(例如 php)发出的,则终止客户端进程。

完整 不是很清楚您的意思。如果您指的是 table 的完整性,那么是的,它应该完好无损。如果你的意思是它会被回滚,那么它取决于发布删除的上下文。

要批量删除分离后的剩余行,假设您从一个表中DELETE(意味着您没有使用多表语法),您可以尝试使用LIMIT子句。

DELETE 
  FROM table_name
 WHERE ...
 LIMIT 10000 -- or any other appropriate batch size

这样您就可以一次删除 n (10000) 行。

关于mysql - 在完成之前停止 MySQL 删除查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20307882/

相关文章:

mysql - 如何从 Mysql 工作台中运行脚本?

php - 无法从用户表(MySql)中选择用户名和密码列

php - 在 Sphinx 中按 sql_attr_float 排序

php - 无法将图像上传到 mySQL 数据库 (JSON/Volley/PHP)

php - 寻找使用 PHP 和 MySQL 存储表的更好方法

mysql - 如何使用asp.net(vb.net)将文本框中的数据保存到mysql数据库

php - MySQL-获取表中的所有数据

php - 使用 MySQL/PHP 的 urlencoding 问题

php - For 循环不返回全部,省略一个 <option>

php - PDO更新返回成功,但不更新数据库