有经验的佛山网站设计,姜堰网站建设,成都 网站建设,深南花园裙楼+网站建设information_schema.processlist 表#xff08;或 SHOW PROCESSLIST; 命令#xff09;用于查看 MySQL 当前所有的连接进程#xff0c;帮助管理员监控数据库活动并排查性能问题。以下是该表的字段及其具体含义#xff1a; #x1f539; information_schema.processlist 字段…information_schema.processlist 表或 SHOW PROCESSLIST; 命令用于查看 MySQL 当前所有的连接进程帮助管理员监控数据库活动并排查性能问题。以下是该表的字段及其具体含义 information_schema.processlist 字段详解
字段名数据类型含义示例IDBIGINT连接的唯一 ID线程 ID12345USERVARCHAR连接的 MySQL 用户rootHOSTVARCHAR连接的客户端主机和端口192.168.1.100:53421DBVARCHAR连接使用的数据库为空表示未选择数据库test_dbCOMMANDVARCHAR当前连接的执行状态Query / Sleep / Binlog DumpTIMEINT该状态已持续的时间秒120STATEVARCHAR当前执行 SQL 的具体状态Sending dataINFOLONGTEXT连接执行的 SQL 语句可能为 NULLSELECT * FROM users; 关键字段解析
1️⃣ ID连接 ID
连接的唯一标识可以用于终止特定连接KILL 12345;2️⃣ USER连接的 MySQL 用户
连接数据库的用户名。root 表示管理员用户其他可能是业务用户。可以用来筛选特定用户的连接SELECT * FROM information_schema.processlist WHERE USER app_user;3️⃣ HOST客户端主机地址和端口
显示连接 MySQL 服务器的客户端 IP 和端口号例如192.168.1.100:53421可以用来检查哪些 IP 连接较多SELECT HOST, COUNT(*) AS conn_count
FROM information_schema.processlist
GROUP BY HOST
ORDER BY conn_count DESC;4️⃣ DB使用的数据库
连接当前选中的数据库NULL 表示未选择数据库。
5️⃣ COMMAND连接执行的操作 代表当前连接的执行状态常见取值 COMMAND说明Sleep连接空闲等待新查询Query正在执行 SQL 语句Connect正在建立连接Binlog Dump复制主从同步DaemonMySQL 后台线程 找出所有空闲连接可以适当关闭 SELECT * FROM information_schema.processlist WHERE COMMAND Sleep;6️⃣ TIME状态持续时间
该状态已持续的时间秒。如果 COMMANDSleep 且 TIME 很长可能说明有长时间空闲的连接未释放。找出空闲时间超过 1 小时的连接SELECT * FROM information_schema.processlist WHERE COMMAND Sleep AND TIME 3600;7️⃣ STATESQL 具体状态 代表 SQL 语句的执行状态便于分析慢查询 STATE说明NULL没有运行中的 SQLChecking table正在检查表Sending data正在返回结果集Locked事务锁等待中Copying to tmp table正在创建临时表可能影响性能Sorting result正在执行排序Waiting for table lock等待表锁可能导致阻塞 找出所有正在等待锁的查询 SELECT * FROM information_schema.processlist WHERE STATE LIKE %lock%;8️⃣ INFO正在执行的 SQL 语句
显示当前连接正在执行的 SQL 语句可能为空。如果 SHOW PROCESSLIST; 只显示部分 SQL可以用 SHOW FULL PROCESSLIST; 查看完整 SQL。 实用 SQL 监控示例
✅ 查询当前连接数
SELECT COUNT(*) FROM information_schema.processlist;✅ 查询每个用户的连接数
SELECT USER, COUNT(*) AS conn_count
FROM information_schema.processlist
GROUP BY USER
ORDER BY conn_count DESC;✅ 查询当前执行 SQL 语句最多的 IP
SELECT HOST, COUNT(*) AS conn_count
FROM information_schema.processlist
WHERE COMMAND ! Sleep
GROUP BY HOST
ORDER BY conn_count DESC;✅ 查询执行时间超过 10 秒的 SQL
SELECT * FROM information_schema.processlist WHERE COMMANDQuery AND TIME 10;✅ 查询所有正在执行的 SQL
SELECT ID, USER, HOST, DB, TIME, STATE, INFO
FROM information_schema.processlist
WHERE COMMANDQuery;✅ 终止某个慢查询
KILL 12345;结论
information_schema.processlist 提供所有连接的详细信息是 MySQL 监控的重要工具。结合 COMMAND、STATE、TIME、INFO 字段可以分析慢查询、找出死锁、清理空闲连接优化数据库性能。 建议
结合 SHOW FULL PROCESSLIST; 获取完整 SQL 语句。监控 Sleep 连接数避免过多空闲连接浪费资源。关注 Locked、Waiting for table lock 等状态检查是否有事务阻塞。
这样可以更好地管理 MySQL 连接提升数据库的稳定性和性能