gpt4 book ai didi

MySQL 查询在被杀死后不会消失

转载 作者:可可西里 更新时间:2023-11-01 06:37:39 25 4
gpt4 key购买 nike

我有一个 MySQL 查询,它正在将数据从一个表复制到另一个表进行处理。由于某种原因,这个通常需要几秒钟的查询在一夜之间被锁定并运行了几个小时。当我今天早上登录时,我试图杀死查询,但它仍然列在进程列表中。

| Id      | User     | Host      | db   | Command | Time  | State        | Info                                                                                 |
+---------+----------+-----------+------+---------+-------+--------------+--------------------------------------------------------------------------------------+
| 1061763 | tb_admin | localhost | dw | Killed | 45299 | Sending data | INSERT INTO email_data_inno_stage SELECT * FROM email_data_test LIMIT 4480000, 10000 |
| 1062614 | tb_admin | localhost | dw | Killed | 863 | Sending data | INSERT INTO email_data_inno_stage SELECT * FROM email_data_test LIMIT 4480000, 10000 |

这可能是什么原因造成的,我怎样才能终止这个进程以便继续我的工作?

最佳答案

如果表 email_data_test 是 MyISAM 并且它被锁定,那将阻止 INSERT。

如果表 email_data_test 是 InnoDB,那么大量 MVCC 数据正在写入 ib_logfiles,这可能还没有发生。

在这两种情况下,您都让 LIMIT 子句滚动 4,480,000 行,只是为了达到 INSERT 实际需要的 10,000 行。

杀死查询只会导致 InnoDB 表 email_data_inno_stage 执行回滚。

关于MySQL 查询在被杀死后不会消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5043268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com