1. 用途
用来查看当前线程处理情况,可以查看总共有多少链接数,哪些线程有问题,执行耗时长等,然后可以通过线程id把有问题的线程 kill 掉
kill xxxx;
进程很多的时候,可能需要批量杀死
select concat('kill ', id, ';') from information_schema.processlist where command != 'Sleep' and time > 60 order by time desc
https://dev.mysql.com/doc/refman/5.7/en/kill.html
https://dev.mysql.com/doc/refman/5.7/en/show-processlist.html
2. 查看
有两个方法查看
直接执行命令:
show processlist;
show full processlist;
show full processlist\G;
通过sql查询
select id, db, user, host, command, time, state, info from information_schema.processlist order by time desc
3. 含义
Id:链接mysql 服务器线程的唯一标识,可以通过kill来终止此线程的链接
User:当前线程链接数据库的用户
Host:显示这个语句是从哪个ip 的哪个端口上发出的。可用来追踪出问题语句的用户,如果是负载服务器,可以大概分析下哪台服务器过来等用户多
db: 线程链接的数据库,如果没有则为null
Command: 显示当前连接的执行的命令,一般就是休眠或空闲(sleep),查询(query),连接(connect)
Time: 线程处在当前状态的时间,单位是秒
State:显示使用当前连接的sql语句的状态,state只是语句执行中的某一个状态,一个 sql语句,以查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成
Info: 线程执行的sql语句,如果没有语句执行则为null