MySQL--SHOW PROCESSLIST

在MySQL中,可以通过SHOW PROCESSLIST命令来查看当前线程:

show processlist;
+----+------+-----------+------+---------+------+-------+------------------+
| Id | User | Host      | db   | Command | Time | State | Info             |
+----+------+-----------+------+---------+------+-------+------------------+
|  8 | root | localhost | NULL | Sleep   |   20 |       | NULL             |
|  9 | root | localhost | NULL | Query   |    0 | init  | show processlist |
+----+------+-----------+------+---------+------+-------+------------------+

SHOW PROCESSLIST命令的输出结果显示了有哪些线程在运行,不仅可以查看当前所有的连接数,还可以查看当前的连接状态。

输出结果列信息为:

(1)id列,用户登录mysql时,系统分配的“connection_id”
(2)user列,显示当前用户。如果不是root,这个命令就只显示用户权限范围的sql语句
(3)host列,显示这个语句是从哪个ip的哪个端口上发的,可以用来跟踪出现问题语句的用户
(4)db列,显示这个进程目前连接的是哪个数据库
(5)command列,显示当前连接的执行的命令,一般取值为休眠(sleep),查询(query),连接(connect)
(6)time列,显示这个状态持续的时间,单位是秒
(7)state列,显示使用当前连接的sql语句的状态
(8)info列,显示这个sql语句,是判断问题语句的一个重要依据。

SHOW FULL PROCESSLIST用来显示完整的Info列信息,等价于:

select * from information_schema.processlist;

循环输入日志

输出执行时间超过1秒的进程

#=============================================##
## mysql config ##
mysql_host="127.0.0.1"
mysql_port=3306
mysql_user="root"
mysql_password="root"
process_log="/export/mysql_tools/show_mysql_process/${mysql_host}-$(date "+%Y%m%d").log"
tmp_process_log="/export/mysql_tools/show_mysql_process/${mysql_host}-$(date "+%Y%m%d").tmp"
show_process_script="
SELECT *
FROM information_schema.processlist 
WHERE COMMAND NOT IN('Sleep','Binlog Dump') 
AND ID<>CONNECTION_ID() 
AND TIME>0 G
"

##=============================================##
## loop running
for i in `seq 1000`;
do

echo "============$(date "+%Y-%m-%d %H:%M:%S")=============">>"${process_log}"

/usr/bin/mysql 
--host="${mysql_host}" 
--port=${mysql_port} 
--user="${mysql_user}" 
--password="${mysql_password}" 
--database="mysql" 
--batch 
--execute="${show_process_script}"  
1>"${tmp_process_log}" 
2>/dev/null

cat "${tmp_process_log}" |sed 's/[ ][ ]*/ /g'|sed 's/^[ 	]*//g'|grep -v "^$">>"${process_log}"

sleep 1

done
##=============================================##
原文地址:https://www.cnblogs.com/gaogao67/p/10493160.html