本文中mysql的版本:5.7.33
一、前言概述
有时候我们正在执行执行一些sql语句,结果几十秒过去了 依然没有执行完成 这样可能就会造成 电脑(或 服务器)cpu被严重占用(甚至让cpu占用达到100%) 导致 电脑(或 服务器)性能严重下降 还有可能大概率造成mysql因为当前语句一直在执行的原因 导致其它mysql语句被耽误或者被阻塞在等待 如果这种情况发生在生产环境 那必将是 Fatal!(致命的)。
PS:以上结论只适用于 这种非常耗时的语句 耽误了正常使用 影响了用户 如果是大晚上 凌晨必须等待执行完成 那就等着执行完成就好喽。
二、如何解决?
我们可以使用mysql内置提供的 mysqladmin 工具 来将执行非常耗时的sql语句给kill掉。本文中mysqladmin工具所在的路径为:/www/server/mysql/bin/
本文中该工具的基本使用语法为:mysqladmin -uroot -ppassword kill 执行sql语句的id
三、举个栗子(使用示例)
-- 执行以下语句,找出执行sql比较耗时的sql语句 show processlist;
示例图片如下所示:
由上图可以看到 Id为 4514337 的这条记录,已经执行耗时了 65(Time字段)秒,而正在执行的sql语句为 SELECT * FROM pay_order(Info字段)
kill掉该条sql语句的命令为:
/www/server/mysql/bin/mysqladmin -uroot -p123456 kill 4514337 # 上面语句注意自己mysqladmin工具的所在路径 及mysql用户账号和对应mysql账号的密码 别啥都一股脑复制 一执行发现各种报错。。
这样 该条sql语句就会被 kill(干掉)了。
本文全剧终。
声明:禁止任何非法用途使用,凡因违规使用而引起的任何法律纠纷,本站概不负责。
精彩评论