phpMyAdmin不提供实时QPS监控,需通过两次采样Queries与Uptime差值计算:执行SELECT VARIABLE_VALUE FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME IN ('Queries','Uptime'),间隔N秒后再次执行,用查询差值除以时间差得出该时段平均QPS。

phpMyAdmin 本身不提供实时每秒 SQL 执行次数(QPS)监控能力,它没有内置的性能计数器或采样仪表盘。你要看 QPS,得绕过界面,直接查 MySQL 的状态变量。
查 Queries 和 Uptime 算出当前平均 QPS
MySQL 的 SHOW STATUS 返回的是自启动以来的累计值,不能直接反映“每秒”,但可以手动算一个粗略均值:
- 执行:
SHOW STATUS LIKE 'Queries';→ 得到总查询数,比如123456 - 执行:
SHOW STATUS LIKE 'Uptime';→ 得到运行秒数,比如7200 - 用前者除以后者:123456 ÷ 7200 ≈ 17.15,即平均约 17 QPS
这个值只代表启动至今的均值,不能反映瞬时压力。如果 MySQL 刚重启不久,结果会严重失真;高流量时段也看不出峰值波动。
用 SHOW GLOBAL STATUS 配合两次采样算真实 QPS
要接近“每秒”效果,必须自己做时间差采样。在 phpMyAdmin 的 SQL 窗口里分两步操作:
立即学习“PHP免费学习笔记(深入)”;
中文 Word 文档自动化校对工具。当用户需要对中文文本或 Word 文档进行标点符号检查、语法检查、错别字检查时使用此 skill。触发词:语法检查、错别字、标点符号、校对、检查文档。
- 第一次执行:
SELECT VARIABLE_VALUE AS queries FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Queries'; SELECT VARIABLE_VALUE AS uptime FROM information_schema.GLOBAL_STATUS WHERE VARIABLE_NAME = 'Uptime'; - 等 10 秒(手动计时),再执行一次同样的语句
- 用两次
queries差值 ÷ 两次uptime差值,就是这 10 秒内的平均 QPS
注意:information_schema.GLOBAL_STATUS 是只读视图,无需权限即可查,但某些托管环境(如部分 cPanel 共享主机)会屏蔽该表访问,返回空结果——这时你就卡住了,得换方式。
为什么不能依赖 phpMyAdmin 的“刷新”按钮看实时 QPS
phpMyAdmin 的“刷新”只是重载页面,不会自动轮询或计算差值。它不缓存上一次的 Queries 值,每次点“执行”都是独立查询,你得自己记数字、自己算减法。更关键的是:
- 它不支持后台定时任务或 JS 自动轮询,没法做成动态仪表盘
- 并发请求多时,
Queries可能在你两次采样之间被多个连接同时修改,导致微小误差(通常可忽略) - WordPress 插件(如缓存类)可能把大量请求压到 PHP 层,实际打到 MySQL 的 QPS 远低于你预期——别光看数据库,也得看 Nginx/Apache 的 access.log 或 WP Super Cache 的命中率
真正要盯住瞬时 QPS,得跳出 phpMyAdmin
如果你需要秒级监控、告警或历史趋势,phpMyAdmin 就不是工具,而是障碍:
- 本地开发用 XAMPP/MAMP:装
mytop或跑mysqladmin -u root -p extended-status -r -i 1 | grep -E "Queries|Threads" - 生产环境:用
pt-query-digest分析慢日志,或接 Prometheus + mysqld_exporter,画 Grafana 图表 - 轻量替代:在服务器跑一个简单脚本,每 5 秒 curl 一次 phpMyAdmin 的 SQL 接口(需 API 支持)或直接连 MySQL socket 执行采样 —— 但这已超出 phpMyAdmin 能力边界
别在 phpMyAdmin 里找“QPS 实时图表”按钮,它根本没这个功能。能算出来,已经是极限;想持续盯,就得换战场。


















