如何判断MySQL进程是否卡住?

use*_*843 9 mysql process long-integer

我在MySQL中有一个长期运行的进程.它已经运行了一个星期.复制主机还有另外一个连接,但是我已经停止了从属处理,所以实际上没有其他任何东西在进行.

如何判断此过程是否仍然有效?我知道这需要很长时间,这就是为什么我把它放在自己的数据库实例上,但这比我预期的要长.显然,如果它仍在工作,我不想杀死它.如果它被僵尸,那么我不知道如何完成它应该做的工作.

它处于"发送数据"状态.该表是InnoDB,但没有查询使用的任何FK引用.自查询启动以来,InnoDB状态显示没有错误或锁定.

任何想法都表示赞赏.

dkr*_*etz 6

尝试"SHOW PROCESSLIST"以查看活动的内容.

当然,如果你杀了它,它可能需要花费同样多的时间回滚它.


tpd*_*pdi 3

你需要消灭它并提出更好的索引。

我为一个人做了一份工作。有一个大约有 3500 万行的表。他的批处理过程和你的一样,已经运行了一个星期,而且还没有结束的迹象。我添加了一些索引,对他的批处理的顺序和方法做了一些改变,整个过程缩短到了两个半小时左右。在较慢的机器上。