查看当前MySQL已建立连接数
1. 查看当前 MySQL 已建立连接数(实时)
1.1 查看当前正在使用的连接数
1 | SHOW STATUS LIKE 'Threads_connected'; |
解释:
Threads_connected表示当前已建立、正在占用的连接数- 这是判断 MySQL 压力最常用、最靠谱的指标
1.2 查看当前正在执行 SQL 的连接数
1 | SHOW STATUS LIKE 'Threads_running'; |
解释:
- 只统计真正占用 CPU 的活跃线程
- 如果这个值长期接近 CPU 核数,说明已经在“喘不过气”
2. 查看连接上限与使用情况(容量视角)
2.1 查看最大允许连接数
1 | SHOW VARIABLES LIKE 'max_connections'; |
2.2 对比当前连接与最大连接
1 | SHOW STATUS LIKE 'Max_used_connections'; |
解释:
Max_used_connections:历史峰值- 如果它接近
max_connections,说明曾经撞过连接天花板
3. 查看连接来源(定位谁在占连接)
3.1 按主机统计连接数
1 | SELECT host, COUNT(*) |
3.2 按用户统计连接数
1 | SELECT user, COUNT(*) |
3.3 查看完整连接详情(慎用,连接多时很吵)
1 | SHOW FULL PROCESSLIST; |
4. 生产环境判断经验
4.1 健康区间经验值
Threads_connected < max_connections * 70%:安全Threads_running通常 ≤ CPU 核数Threads_running持续升高 ≈ 慢 SQL 或锁竞争
4.2 如果连接数异常高,优先怀疑
- 连接池未生效(Java / Go / PHP)
- 应用未释放连接
- 慢 SQL 导致连接堆积
- 短连接洪水(典型 PHP / Node)
5. 一句话总结
- 看压力:
Threads_running - 看规模:
Threads_connected - 看风险:
Max_used_connections / max_connections - 看元凶:
processlist