在 MySQL 中,可以通过查看进程(连接)来了解当前数据库的连接状态、执行的 SQL 语句等信息,常用于排查连接过多、慢查询等问题。
-
该命令会显示当前所有连接到 MySQL 服务器的进程信息,包括:
-
Id:连接 ID(杀死进程时需要用到)
-
User:执行该进程的用户名
-
Host:连接来源的主机(IP: 端口)
-
db:当前连接的数据库
-
Command:进程状态(如 Sleep、Query、Connect 等)
-
Time:进程持续时间(秒)
-
State:进程当前状态(如 executing 表示正在执行)
-
Info:执行的 SQL 语句(长语句会被截断)
-
与
SHOW PROCESSLIST 类似,但 Info 字段会显示完整的 SQL 语句,适合查看长查询。
SHOW PROCESSLIST WHERE User = 'test';
SHOW PROCESSLIST WHERE Time > 60;
SHOW FULL PROCESSLIST WHERE Command = 'Query';
如果发现某个进程长时间阻塞或占用资源过多,可以终止它:
-
执行
SHOW PROCESSLIST 需要 PROCESS 权限,普通用户只能看到自己的连接,管理员(如 root)可以看到所有连接。
-
大量的
Sleep 状态进程可能表示连接未被正确关闭,需检查应用程序的连接池配置。
-
若
State 字段显示 Locked,可能表示该进程正在等待锁,需进一步排查锁冲突问题。
通过这些命令,可以有效监控 MySQL 的连接状态,及时发现并处理异常进程。