show full processlist 是最准的入口,可一次性查看所有活跃连接、完整sql及执行状态;不带full会截断info字段,权限不足时仅显示自身线程,需process权限才可见全局;state与time需联合判断阻塞、锁表或慢查询。

直接执行 SHOW FULL PROCESSLIST 是最准的入口
phpMyAdmin 本身不提供“进程监控面板”,但支持原生 MySQL 命令。在任意数据库页面点开“SQL”标签页,输入 SHOW FULL PROCESSLIST 并执行——这是唯一能一次性看到所有活跃连接、完整 SQL 语句和执行状态的方式。SHOW PROCESSLIST(不带 FULL)会截断 Info 字段,常导致长查询、预编译语句或带参数的 INSERT 看不到真实内容,基本等于白查。
权限不够时只看到自己的线程,别误以为“没人在跑”
普通数据库用户执行 SHOW FULL PROCESSLIST 只能看到自己发起的连接;看不到其他用户(包括 phpMyAdmin 后台自动建的连接)的线程。现象是结果只有 1–2 行,State 还是 Sleep,容易误判系统空闲。真正需要盯住全局行为时,必须用具有 PROCESS 权限的账号(如 root)登录 phpMyAdmin,否则你看到的只是冰山一角。
State 和 Time 联合看,才能识别卡死或锁表
单看 Time 数值没意义,关键要结合 State:
- State = 'Sending data' 且 Time > 30:大概率在扫大表或没走索引
- State = 'Locked' 或 'Waiting for table metadata lock':说明被 DDL 或长事务阻塞
- State = 'Copying to tmp table':GROUP BY / ORDER BY 没走索引,正在磁盘临时表里硬扛
- Info 为空但 Time 持续上涨:可能是空闲连接未关闭,也可能是隐式事务没提交
想持续观察?别手动刷新,用 mysqladmin 更可靠
phpMyAdmin 的 SQL 执行是单次快照,没法自动轮询。真要盯住新出现的慢查询或突发连接,得切到服务器终端执行:
- mysqladmin -u root -p -i 1 processlist:每秒刷新一次,Ctrl+C 退出
- 注意:如果报错 Access denied; you need (at least one of) the PROCESS privilege(s),说明当前 MySQL 用户没被授予 PROCESS 权限,得先用 root 执行 GRANT PROCESS ON *.* TO 'user'@'host';
- 输出格式紧凑,适合滚动观察,比 phpMyAdmin 表格视图更省眼力
实际最难的不是找到命令,而是区分哪些 State 值真危险、哪些只是瞬时状态;比如 Writing to net 在返回大数据集时必然出现,但 Time 刚过 2 秒就不用慌——得看它是否卡在那儿不动。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











