mysql怎么终止当前正在执行的sql语句?

mysql怎么终止当前正在执行的sql语句?,第1张

*** 作步骤:

show processlist

找出你要停止的语句

然后找出你要终止的语句的id

在系统下mysqladmin -uroot -ppassword kill 要杀的ID

MySQL查询语句执行的过程:

客户端发送一条查询给服务器;

服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果。否则进入下一阶段;

服务器端进行SQL解析、预处理,再由优化器生成对应的执行计划;

MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询;

将结果返回给客户端。

mysql windows 可以这样 *** 作; 不过最好还是写脚本却执行吧,这里的文件如果 *** 作过一次后需要手动删除,不然下次执行会报错。

SELECT CONCAT('KILL ',id,'') FROM information_schema.processlist INTO OUTFILE 'D:\\tmp.txt'

source D:\\tmp.txt

php脚本如下:

$result = mysql_query("SHOW FULL PROCESSLIST")

while ($row=mysql_fetch_array($result)) {

      $process_id=$row["Id"]

      if ($row["Time"] > 200 ) {

            $sql="KILL $process_id"

            mysql_query($sql)

      }

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9429715.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存