MYSQL的wait_timeout与连接池相关
2016-07-20 18:38
309 查看
mysql有一个很重要的配置参数 wait_timeout 它代表着连接长时间空闲的的情况下如何管理
当你的程序出现数据库连接问题的时候,第一时间要检查wait_timeout。它的默认值是28800,即等待8小时后关闭。原本此值是一个非常重要数据,必须谨慎配置。但是网上经常有人建议配置很高来解决问题,其实这是一个坑,过高的配置在遇到程序退出时(或者业务频繁启动关闭),连接无法主动释放,然后数据库就一直等待直到wait_timeout,如果多次出现这种情况,那将会耗尽数据库连接资源。
正确的配置方式是根据自己业务的情况合理配,在业务很稳定的情况下可以提高配置值。在业务经常需要启动关闭的情况下适当调低。调整后,在连接池配置中也应该修改长时间连接连接有效性检查的相关配置,如下(仅作建议,请自行测试)
c3p0配置
idleConnectionTestPeriod 为 wai_timeout的50%
dbcp配置 (tomcat连接池)
timeBetweenEvictionRunsMillis 为 wai_timeout的50%
proxool 配置
maximum-connection-lifetime 小于 wai_timeout
当你的程序出现数据库连接问题的时候,第一时间要检查wait_timeout。它的默认值是28800,即等待8小时后关闭。原本此值是一个非常重要数据,必须谨慎配置。但是网上经常有人建议配置很高来解决问题,其实这是一个坑,过高的配置在遇到程序退出时(或者业务频繁启动关闭),连接无法主动释放,然后数据库就一直等待直到wait_timeout,如果多次出现这种情况,那将会耗尽数据库连接资源。
正确的配置方式是根据自己业务的情况合理配,在业务很稳定的情况下可以提高配置值。在业务经常需要启动关闭的情况下适当调低。调整后,在连接池配置中也应该修改长时间连接连接有效性检查的相关配置,如下(仅作建议,请自行测试)
c3p0配置
idleConnectionTestPeriod 为 wai_timeout的50%
dbcp配置 (tomcat连接池)
timeBetweenEvictionRunsMillis 为 wai_timeout的50%
proxool 配置
maximum-connection-lifetime 小于 wai_timeout
相关文章推荐
- mysql绿色版的启动
- MySQL的btree索引和hash索引的区别
- 通过sql获得mysql的表结构
- 详解mysql建立索引的使用办法及优缺点分析
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
- [笔记] MySql Workbench 导出表结构和数据报错 mysqldump: [ERROR] unknown variable 'delayed-insert=FALSE'
- Mysql cluster集群的搭建
- mysql 命令
- 关于mysql函数GROUP_CONCAT
- MySQL 分区表
- mysql手工注入总结
- mysql分表后查询所有表中的记录
- 【mysql】执行mysql脚本
- MAC下安装MySQL以及重置初始密码详细教程
- mysql,实现数据库检索结果添加自增的序号
- ubuntu系统中解决mysql乱码
- mysql给root开启远程访问权限,修改root密码
- mysql服务一些问题
- 安装mysql报错5.7.13-Table 'mysql.user' doesn't existFor more information
- Mysql 的特殊之处