SHOW [FULL] PROCESSLIST
用于查看当前正在运行的线程。如果执行此命令的用户拥有 PROCESS 权限,则可看到所有线程;否则只能看到自己的线程(即与当前登录用户关联的线程)。如果不使用FULL关键字,只在Info字段中展示前100个字符。

command 取值
- Binlog Dump:主库上的线程,用于将binlog内容发送到从库
- Change user:线程正在执行更改用户操作
- Close stmt:线程正在关闭一个prepared statement
- Connect:一个复制从库已连接到其主库
- Connect Out:一个复制从库正在连接到其主库
- Create DB:线程正在执行create-database操作
- Daemon:服务器内部线程,而非为客户端连接提供服务的线程
- Debug:该线程正在生成调试信息
- Delayed insert:该线程是延迟插入处理程序
- Drop DB:线程正在执行drop-database操作。
- Error:你懂的
- Execute:线程正在执行一个prepared statement
- Fetch:正在从Prepared Statement 中获取执行结果
- Field List:该线程正在获取表的字段信息
- Init DB:线程正在选择默认数据库。
- Kill:该线程正在杀死另一个线程
- Long Data:正在从prepared statement中检索long data
- Ping:线程正在处理server-ping请求。
- Prepare:该线程正在准备一个prepared statement
- Processlist:该线程正在生成服务器线程相关信息
- Query:线程正在执行一条语句
- Quit:线程正在终止
- Refresh:该线程是刷新表,日志或缓存;或者正在重置状态变量或在复制服务器信息。
- Register Slave:该线程正在注册一个从库
- Reset stmt:线程正在重置prepared statement
- Set option:线程正在设置或重置client statement-execution选项
- Shutdown:线程正在关闭服务器
- Sleep:线程正在等待客户端向其发送statement
- Statistics:该线程正在生成服务器状态信息
- Table Dump:线程正在将表内容发送到从属服务器。
- Time:Unused
分享几个操作 INFORMATION_SCHEMA.PROCESSLIST 表的实用SQL。
-- 按照客户端IP分组,看哪个客户端的连接数最多select client_ip, count(client_ip) as client_numfrom (select substring_index(host, ':', 1) as client_ipfrom `information_schema`.processlist) as connect_infogroup by client_iporder by client_num desc;-- 查看正在执行的线程,并按 Time 倒排序,看看有没有执行时间特别长的线程select *from `information_schema`.processlistwhere Command != 'Sleep'order by Time desc;-- 找出所有执行时间超过 5 分钟的线程,拼凑出 kill 语句,方便后面查杀select concat('kill ', id, ';')from `information_schema`.processlistwhere Command != 'Sleep'and Time > 300order by Time desc;
SHOW STATUS
作用:查看服务器相关信息。返回结果解读详见:Server Status Variables
语法:
SHOW [GLOBAL | SESSION] STATUS
[LIKE 'pattern' | WHERE expr]
示例:
SHOW STATUS;
SHOW GLOBAL STATUS like '%Slow%'
SHOW VARIABLES
作用:查看MySQL的变量,内容解读详见: Server System Variables
语法:
SHOW [GLOBAL | SESSION] VARIABLES
[LIKE 'pattern' | WHERE expr]
示例:
SHOW VARIABLES;
SHOW TABLE STATUS
作用:查看表以及视图的状态
语法:
SHOW TABLE STATUS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
示例:
SHOW TABLE STATUS from employees;
参考文档:
SHOW TABLE STATUS Statement
SHOW INDEX
作用:查看索引相关信息
语法:
SHOW [EXTENDED] {INDEX | INDEXES | KEYS}
{FROM | IN} tbl_name
[{FROM | IN} db_name]
[WHERE expr]
示例:
SHOW INDEX FROM mytable FROM mydb;
SHOW INDEX FROM mydb.mytable;
参考文档:
SHOW INDEX Statement
SHOW ENGINE
作用:展示有关存储引擎的相关信息。
语法:
SHOW ENGINE engine_name {STATUS | MUTEX}
示例:
-- 有关innodb的内容解读详见:https://dev.mysql.com/doc/refman/8.0/en/innodb-standard-monitor.html
SHOW ENGINE INNODB STATUS
SHOW ENGINE INNODB MUTEX
SHOW MASTER STATUS
作用:展示有关master binlog文件的相关信息
语法:
SHOW MASTER STATUS
示例:
SHOW MASTER STATUS
参考文档:
SHOW MASTER STATUS Statement
SHOW SLAVE STATUS
作用:展示slave线程的相关信息
语法:
SHOW SLAVE STATUS [FOR CHANNEL channel]
示例:
SHOW SLAVE STATUS
参考文档:
SHOW SLAVE STATUS Statement
SHOW PROCEDURE
作用:返回存储过程相关信息
语法:
SHOW PROCEDURE STATUS
[LIKE 'pattern' | WHERE expr]
示例:
SHOW PROCEDURE STATUS LIKE 'sp1'
参考文档:
SHOW PROCEDURE STATUS Statement
SHOW FUNCTION STATUS
作用:查看函数相关信息
语法:
SHOW FUNCTION STATUS
[LIKE 'pattern' | WHERE expr]
示例:
SHOW FUNCTION STATUS
参考文档:
SHOW FUNCTION STATUS Statement
SHOW TRIGGERS
作用:查看触发器相关信息
语法:
SHOW TRIGGERS
[{FROM | IN} db_name]
[LIKE 'pattern' | WHERE expr]
示例:
SHOW TRIGGERS LIKE 'acc%'
SHOW WARNINGS
作用:展示error、warning、note级别的诊断信息
语法:
SHOW WARNINGS [LIMIT [offset,] row_count]
SHOW COUNT(*) WARNINGS
示例:
mysql> CREATE TABLE t1 (a TINYINT NOT NULL, b CHAR(4));
Query OK, 0 rows affected (0.05 sec)
mysql> INSERT INTO t1 VALUES(10,'mysql'), (NULL,'test'), (300,'xyz');
Query OK, 3 rows affected, 3 warnings (0.00 sec)
Records: 3 Duplicates: 0 Warnings: 3
mysql> SHOW WARNINGS\G
*************************** 1. row ***************************
Level: Warning
Code: 1265
Message: Data truncated for column 'b' at row 1
*************************** 2. row ***************************
Level: Warning
Code: 1048
Message: Column 'a' cannot be null
*************************** 3. row ***************************
Level: Warning
Code: 1264
Message: Out of range value for column 'a' at row 3
3 rows in set (0.00 sec)
SHOW ERRORS
作用:展示error级别的诊断信息,和show warnings类似。
语法:
SHOW ERRORS [LIMIT [offset,] row_count]
SHOW COUNT(*) ERRORS
示例:
SHOW COUNT(*) ERRORS;
SELECT @@error_count;
SHOW BINARY LOGS
作用:列出服务器上的所有binary log
语法:
SHOW BINARY LOGS
SHOW MASTER LOGS
示例:
SHOW BINARY LOGS;
参考文档:
SHOW BINARY LOGS Statement
SHOW BINLOG EVENTS
作用:查看binary log中的事件
语法:
SHOW BINLOG EVENTS
[IN 'log_name']
[FROM pos]
[LIMIT [offset,] row_count]
示例:
SHOW BINLOG EVENTS
• 1
参考文档:
SHOW BINLOG EVENTS Statement
SHOW RELAYLOG EVENTS
作用:查看复制从库的relay log事件相关信息
语法:
SHOW RELAYLOG EVENTS
[IN 'log_name']
[FROM pos]
[LIMIT [offset,] row_count]
[channel_option]
channel_option:
FOR CHANNEL channel
示例:
SHOW RELAYLOG EVENTS
