首页/数据/数据库速查/SHOW STATUS 状态变量速查

SHOW STATUS 状态变量速查

实例运行计数器:连接数、查询量、锁等待、缓冲池读写等;判断负载瓶颈与容量趋势的一手数据。

数据库速查数据更新于 2026-10-13

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 后会清零;做趋势分析必须按时间窗口计算差值,直接比较总量会得出错误结论。

易错点

  • 把累计计数器当成瞬时速率,监控曲线上的增长被误读为突发故障
  • 只看连接数不看活跃线程,长空闲连接掩盖了真实并发压力
  • 重启后计数器归零,监控系统立刻报「指标下降」的假告警
  • 不区分全局与会话作用域,读到的会话值无法代表实例整体状况
  • 只用 SHOW STATUS 不看 SHOW VARIABLES,把参数问题误判成负载问题

数据来源与参考

  • MySQL 8.0 Reference Manual: Server Status Variables

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌