SHOW STATUS 是什么
SHOW STATUS 展示实例运行期的累计计数器:连接数、查询量、慢查询、锁等待、缓冲池读写、临时表使用等。它回答的是「发生过多少次」,而不是「当前配置是什么」,因此要和 SHOW VARIABLES 配合看。判断负载瓶颈与容量趋势时,这两个命令是成本最低的入口。
基本信息
| 适用版本 | MySQL 5.7 / 8.0 |
|---|---|
| 语法 | SHOW [GLOBAL|SESSION] STATUS LIKE '模式' |
| 等价查询 | performance_schema.global_status |
| 计数特性 | 累计值,重启或 FLUSH STATUS 后清零 |
| 辅助命令 | mysqladmin extended-status |
典型使用场景
- 连接巡检:看当前连接、活跃线程与历史最大连接数
- 慢查询统计:Slow_queries 增长趋势反映 SQL 质量变化
- 锁与并发:观察等待类计数判断是否存在明显争用
- 缓存效果:用逻辑读与物理读之比评估缓冲池命中率
- 临时表与排序:统计落盘临时表次数,定位排序开销
- 容量趋势:定期采集并做窗口差值,形成增长曲线
高频指标与摘要
高频指标与摘要
SHOW GLOBAL STATUS LIKE 'Threads_connected'; -- 当前连接数
SHOW GLOBAL STATUS LIKE 'Threads_running'; -- 活跃线程数
SHOW GLOBAL STATUS LIKE 'Max_used_connections'; -- 历史峰值连接数
SHOW GLOBAL STATUS LIKE 'Slow_queries'; -- 累计慢查询数
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%'; -- 逻辑读与物理读
SHOW GLOBAL STATUS LIKE 'Aborted_connects'; -- 连接失败次数
SHOW GLOBAL STATUS LIKE 'Created_tmp%'; -- 临时表与落盘临时表
-- 一键摘要:
-- mysqladmin -uroot -p extended-status | egrep 'Threads_|Connections|Slow_queries|Questions'指标读法
| 指标 | 含义 | 异常表现 |
|---|---|---|
| Threads_connected | 当前连接数 | 接近上限时新连接被拒 |
| Threads_running | 正在执行的线程数 | 持续高于 CPU 核数说明并发压力大 |
| Slow_queries | 超过阈值的语句累计数 | 增长加快说明 SQL 质量下降 |
| Innodb_buffer_pool_reads | 物理读次数 | 相对逻辑读占比升高说明命中率下降 |
| Aborted_connects | 建连失败次数 | 增长说明网络或认证存在问题 |
| Created_tmp_disk_tables | 落盘临时表数 | 过高说明排序或分组超出内存 |
Innodb_buffer_pool_read_requests 与 Innodb_buffer_pool_reads 反映逻辑读与物理读之比,命中率长期低于 95% 时考虑扩容缓冲池。
状态变量是累计计数器,实例重启或执行 FLUSH STATUS 后会清零;做趋势分析必须按时间窗口计算差值,直接比较总量会得出错误结论。