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]