一、连接数
MySQL服务连接数查看
使用如下命令可以查看当前MySQL服务的最大连接数
# 查看MySQL服务的最大连接数
SHOW VARIABLES LIKE '%max_connections%';
查询结果
设置最大连接数
# 查看MySQL服务的最大连接数
SET GLOBAL max_connections = 200;
最大连接数设置多少合适
# 查看历史最大使用连接数
SHOW STATUS LIKE 'Max_used_connections%';
查询结果
查询结果中展示了过去MySQL服务使用的连接数的峰值和时间,实际在设置的时候,可以参考此数值,进行一定比例的上浮进行设置即可,
比如系统长期稳定运行,可以上浮20%,如果有特殊情况(比如需要增加服务实例),可以根据具体情况可以根据实际的业务场景进行调整。
二、连接超时时间
查看超时时间
MySQL连接默认设置了超时时间,默认是28800 s(MySQL 8默认1800 s)
# 非交互式客户端连接超时时间
SHOW VARIABLES LIKE 'wait_timeout%';
# 交互式客户端连接超时时间
SHOW VARIABLES LIKE 'interactive_timeout%';
当MySQL服务器检测到某个连接限制超过该超时时间,连接就会被销毁,这样会导致客户端连接断开,影响应用服务查询。
超时问题解决
那么如何结果连接超时对应用的影响呢?
- 增加超时时间
将MySQL服务的超时时间设置长一些,保证在特定时间内服务有请求进入即可 - 连接参数添加自动重连
客户端连接参数指定自动重连,例如JDBC连接url:jdbc:mysql://hostaddress:3306/schemaname?autoReconnect=true - 使用连接池
使用连接池维护数据库连接,设置最小活跃连接数,实际开发中应该尽量使用此种方法,降低连接的频繁创建和销毁带来的开销