痕厄 发表于 2025-6-11 13:06:52

MySQL查询当前连接数的语句

1. 查看当前总连接数

SHOW STATUS LIKE 'Threads_connected';

[*]返回当前建立的连接总数
 

2. 查看最大连接数配置

SHOW VARIABLES LIKE 'max_connections';

[*]显示服务器允许的最大并发连接数
 

3. 查看详细的连接信息

SHOW PROCESSLIST;

[*]显示所有连接的详细信息(用户、来源IP、执行的SQL等)
 

4. 按用户分组统计连接数

SELECT user, COUNT(*) as connections
FROM information_schema.processlist
GROUP BY user; 
5. 查看连接数使用率

SELECT
(SELECT VARIABLE_VALUE
   FROM performance_schema.global_status
   WHERE VARIABLE_NAME = 'Threads_connected') AS current_connections,

(SELECT VARIABLE_VALUE
   FROM performance_schema.global_variables
   WHERE VARIABLE_NAME = 'max_connections') AS max_connections,

ROUND((SELECT VARIABLE_VALUE
         FROM performance_schema.global_status
         WHERE VARIABLE_NAME = 'Threads_connected') /
      (SELECT VARIABLE_VALUE
         FROM performance_schema.global_variables
         WHERE VARIABLE_NAME = 'max_connections') * 100, 2) AS connection_usage_rate; 
6. 查看不同状态的连接数

SELECT command, COUNT(*)
FROM information_schema.processlist
GROUP BY command; 
7. 查看空闲连接数(Sleep状态)

SELECT COUNT(*)
FROM information_schema.processlist
WHERE command = 'Sleep'; 
注意事项:


[*]需要至少 PROCESS 权限才能查看所有连接
[*]生产环境连接数接近 max_connections 时需要扩容或优化
[*]长时间 Sleep 的连接可以考虑适当调低 wait_timeout 参数
如果需要终止连接,可以使用:
KILL ;-- 从SHOW PROCESSLIST结果中获取ID 

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: MySQL查询当前连接数的语句