

新闻资讯
技术学院通过SHOW GLOBAL STATUS命令可快速诊断MySQL负载:Threads_connected和Threads_running反映连接与活跃线程压力;Questions/Uptime得QPS,Slow_queries/Questions得慢查占比;缓冲池命中率低于95%需调大innodb_buffer_pool_size;Innodb_row_lock_waits和Innodb_row_lock_time_avg突增表明锁争用严重。
直接查几个关键状态值,就能快速掌握 MySQL 当前负载情况,不需要装额外工具或等报表生成。
连接堆积是最直观的负载信号。执行:
SHOW GLOBAL STATUS LIKE 'Threads%';
重点关注:
max_connections(默认151)说明连接池可能不足或有泄漏反映数据库实际工作强度:
SHOW GLOBAL STATUS LIKE 'Questions';
SHOW GLOBAL STATUS LIKE 'Slow_queries';
SHOW GLOBAL STATUS LIKE 'Uptime';
用 Questions / Uptime 算出 QPS(每秒查询数);再算 Slow_queries / Questions 得到慢查询占比。建议把 long_query_time 设为 0.1 秒而非默认 10 秒,才能捕获真实影响体验的“准慢查询”。
内存是否扛得住,决定磁盘 I/O 压力大小:
SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool_read%';
计算缓冲池命中率:
(Innodb_buffer_pool_read_requests − Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests
低于 95% 就该考虑增大 innodb_buffer_pool_size;若长期低于 90%,I/O 瓶颈很可能已出现。
高并发下性能下降的常见元凶:
SHOW GLOBAL STATUS LIKE 'Innodb_row_lock%';
重点关注:
w_lock_waits:单位时间内锁等待次数突增,说明事务冲突变多配合 SELECT * FROM information_schema.INNODB_TRX 可看到当前运行中的长事务。