豆包 MySQL8.0 global_status
·
你想了解 MySQL 中的 global_status(全局状态),核心需求应该是搞清楚它是什么、怎么查看、常用的状态指标有哪些,以及它能解决什么问题。
一、什么是 MySQL global_status
global_status 是 MySQL 中存储全局系统状态信息的内置视图(属于 information_schema 库),也可以通过 SHOW GLOBAL STATUS 命令直接查看。它记录了 MySQL 服务启动以来的所有核心运行指标,比如连接数、查询数、缓存命中率、IO 操作数等,是监控 MySQL 性能、排查问题的核心依据。
简单来说:global_status 就像 MySQL 的“仪表盘”,能实时反映数据库的整体运行状态。
二、如何查看 global_status
1. 基础查看方式(推荐)
-- 查看所有全局状态(数据量较大,不建议直接执行)
SHOW GLOBAL STATUS;
-- 模糊查询指定的状态指标(常用)
SHOW GLOBAL STATUS LIKE 'XXX';
-- 示例:查看连接数相关指标
SHOW GLOBAL STATUS LIKE 'Threads_connected';
SHOW GLOBAL STATUS LIKE 'Connections';
2. 从 information_schema 库查询
-- 精准查询单个状态值
SELECT VARIABLE_VALUE
FROM information_schema.GLOBAL_STATUS
WHERE VARIABLE_NAME = 'Threads_connected';
-- 批量查询多个状态值
SELECT
VARIABLE_NAME,
VARIABLE_VALUE
FROM information_schema.GLOBAL_STATUS
WHERE VARIABLE_NAME IN (
'Threads_connected', -- 当前已建立的连接数
'Connections', -- 总连接次数(累计)
'Slow_queries', -- 慢查询数
'Qcache_hits' -- 查询缓存命中数(MySQL 8.0 已移除查询缓存)
);
三、常用的核心 global_status 指标(新手必知)
| 状态名 | 含义 |
|---|---|
Threads_connected |
当前已建立的客户端连接数(实时值) |
Max_used_connections |
自启动以来达到的最大连接数(峰值) |
Connections |
自启动以来客户端尝试连接的总次数(累计) |
Slow_queries |
慢查询次数(超过 long_query_time 阈值的查询,默认10秒) |
Com_select |
SELECT 语句执行次数(累计) |
Com_insert/Com_update/Com_delete |
增/改/删语句执行次数(累计) |
Innodb_rows_read |
InnoDB 引擎读取的行数 |
Innodb_rows_inserted |
InnoDB 引擎插入的行数 |
Uptime |
MySQL 服务运行时长(秒) |
Bytes_received/Bytes_sent |
服务器接收/发送的字节数(网络IO) |
四、实战示例:用 global_status 排查常见问题
1. 检查连接数是否超标
-- 1. 查看当前连接数
SHOW GLOBAL STATUS LIKE 'Threads_connected';
-- 2. 查看最大连接数配置(对比判断是否需调整)
SHOW VARIABLES LIKE 'max_connections';
-- 示例输出解读:
-- Threads_connected = 80,max_connections = 100 → 连接数充足
-- Threads_connected = 95,max_connections = 100 → 接近阈值,需关注或调整
2. 检查慢查询情况
-- 1. 查看慢查询数
SHOW GLOBAL STATUS LIKE 'Slow_queries';
-- 2. 查看慢查询阈值配置
SHOW VARIABLES LIKE 'long_query_time';
-- 若 Slow_queries 持续增长,说明存在性能差的SQL,需开启慢查询日志排查
五、注意事项(新手避坑)
- 全局 vs 会话:
GLOBAL STATUS是全局指标(所有连接),SESSION STATUS是当前会话指标,不要混淆; - 累计值 vs 实时值:大部分指标是累计值(从服务启动开始计数),如需看增量,需多次查询对比(比如隔10秒查两次
Com_select,差值就是10秒内的查询数); - MySQL版本差异:MySQL 8.0 移除了查询缓存相关指标(如
Qcache_hits),部分指标名称会略有调整; - 权限要求:查看
global_status需要PROCESS权限(普通用户可能无权限,需管理员授权)。
总结
global_status是 MySQL 的核心监控视图,记录了数据库运行的所有全局指标,是性能排查的关键依据;- 常用查看方式是
SHOW GLOBAL STATUS LIKE '指标名'或从information_schema.GLOBAL_STATUS表查询; - 重点关注连接数(Threads_connected)、慢查询数(Slow_queries)、SQL执行次数(Com_*)等核心指标,可快速定位性能问题。
如果你的需求是具体排查某类问题(比如连接数过高、慢查询多),可以告诉我,我会针对性给出基于 global_status 的排查步骤。
更多推荐

所有评论(0)