haixin3036 发表于 2018-10-3 12:31:46

MYSQL性能异常处理

  通过information_schema.processlist表中的连接信息生成需要处理掉的MySQL连接的语句临时文件,然后执行临时文件中生成的指令
  mysql> select concat('KILL ',id,';') from information_schema.processlist where user='root';
  +------------------------+
  | concat('KILL ',id,';')
  +------------------------+
  | KILL 3101;
  | KILL 2946;
  +------------------------+
  2 rows in set (0.00 sec)
  mysql>select concat('KILL ',id,';') 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连接
  mysqladmin -uroot -p processlist|awk -F "|" '{print $2}'|xargs -n 1 mysqladmin -uroot -p kill
  2杀掉指定用户运行的连接,这里为Mike
  mysqladmin -uroot -p processlist|awk -F "|" '{if($3 == "Mike")print $2}'|xargs -n 1 mysqladmin -uroot -p kill
  3、通过SHEL脚本实现
  #杀掉锁定的MySQL连接
  for>mysqladmin processlist|grep -i locked|awk '{print $1}'
  do
  mysqladmin kill ${id}
  done
  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 –kill
  谨慎使用谨慎使用
  重要的事多说几遍

页: [1]
查看完整版本: MYSQL性能异常处理