Mysql学习批量 kill mysql 中运行时间长的sql
《Mysql学习批量 kill mysql 中运行时间长的sql》要点: MYSQL入门?KILL语法 MYSQL入门KILL [CONNECTION | QUERY] thread_id MYSQL入门KILL允许自选的CONNECTION或QUERY修改符: MYSQL入门? KILL CONNECTION与不含修改符的KILL一样:它会终止与给定的thread_id有关的连接. MYSQL入门如果您拥有PROCESS权限,则您可以查看所有线程.如果您拥有SUPER权限,您可以终止所有线程和语句.否则,您只能查看和终止您自己的线程和语句. MYSQL入门您也可以使用mysqladmin processlist和mysqladmin kill命令来检查和终止线程. MYSQL入门注释:您不能同时使用KILL和Embedded MySQL Server库,因为内植的服务器只运行主机应用程序的线程.它不能创建任何自身的连接线程. MYSQL入门当您进行一个KILL时,对线程设置一个特有的终止标记.在多数情况下,线程终止可能要花一些时间,这是因为终止标记只会在在特定的间隔被检查: MYSQL入门? 在SELECT,ORDER BY和GROUP BY循环中,在读取一组行后检查标记.如果设置了终止标记,则该语句被放弃. MYSQL入门? 警告:对MyISAM表终止一个REPAIR TABLE或OPTIMIZE TABLE操作会导致出现一个被损坏的没有用的表.对这样的表的任何读取或写入都会失败,直到您再次优化或修复它(不中断). MYSQL入门 MYSQL入门
mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root';
+------------------------+
| concat('KILL ',';')
+------------------------+
| KILL 3101;
| KILL 2946;
+------------------------+
2 rows in set (0.00 sec)
mysql>select concat('KILL ',';') from information_schema.processlist where user='root' into outfile '/tmp/a.txt';
Query OK,2 rows affected (0.00 sec)
mysql>source /tmp/a.txt;
Query OK,0 rows affected (0.00 sec)
MYSQL入门2、杀掉当前所有的MySQL连接 MYSQL入门mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill MYSQL入门杀掉指定用户运行的连接,这里为Mike MYSQL入门mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "Mike")print $2}'|xargs -n 1 mysqladmin -uroot -p kill MYSQL入门3、通过SHEL脚本实现 MYSQL入门
#杀掉锁定的MySQL连接
for id in `mysqladmin processlist|grep -i locked|awk '{print $1}'`
do
mysqladmin kill ${id}
done
MYSQL入门4、通过Maatkit工具集中提供的mk-kill命令进行 代码如下:#杀掉超过60秒的sql mk-kill -busy-time 60 -kill #如果你想先不杀,先看看有哪些sql运行超过60秒 mk-kill -busy-time 60 -print #如果你想杀掉,同时输出杀掉了哪些进程 mk-kill -busy-time 60 -print Ckill MYSQL入门 mk-kill更多用法可参考: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |