`KILL QUERY`命令的目的是什么?

时间:2017-05-09 18:04:44

标签: mysql sql myisam

我是MySQL和SQL的初学者,我正在从MySQL和MyISAM网站学习这些技术。

我现在正在学习KILL命令,并学会了如何使用KILL CONNECTION。但是当我从MySQL和MyISAM网站学习KILL QUERY时,他们只是提供了有关KILL QUERY的信息,他们终止查询指定的连接ID正在执行。

其他用户(不是我)执行INSERTDELETE查询但是当我通过KILL QUERY命令获取其他用户的连接ID时使用SHOW PROCESSLIST时,它说

  

查询OK,0行受影响(0.01秒)

但其他用户没有任何反应。

我只是想知道这个命令的确切用法是什么。这个KILL QUERY命令的目的是什么。有谁能告诉我?

1 个答案:

答案 0 :(得分:2)

一些有用的指示:

How can I stop a running MySQL query?

MySQL Kill query

How to kill all processes for a Specific user

MySQL Manaul - Kill

你需要在这里明确KILL将终止连接,但KILL QUERY只会终止该查询并保持该连接不变。

真的,如果你在另一个用户命令上使用KILL QUERY,如果他们的查询运行更长而不是你的Kill Query命令,那么这真的很明显,所以如果它很慢查询,因为[大多数]查询将在几分之一秒内执行和关闭,所以当你KILL编辑其他用户查询时,他们的查询可能已经完成并关闭了。

我怀疑这就是你所看到的,你正试图杀死一个关闭的查询,并在 kill 命令执行之前完成。

杀戮查询似乎(来自文献)只对慢速和长时间运行的查询有用,为什么会出现这种情况应该从上面显而易见。

修改
(我已经准备好发布我的原始答案,然后将其视为无关紧要,但由于评论,现在似乎更具相关性!)

来自MySQL Manual

  

请注意

     

您不能将KILL与嵌入式MySQL服务器库一起使用,因为嵌入式服务器仅在主机应用程序的线程内运行。它不会创建自己的任何连接线程。

因此,为了在评论中回答您的问题,我认为您可能正在运行MySQL嵌入式,因此您的kill调用将无法运行。