常用的数据库连接池、配置参数及相应的调优方法|即时
2023-06-27 04:08:35 来源:博客园
数据库连接池是一种用于管理和维护数据库连接的技术,不同类型的数据库连接池具体的配置参数和调优方法也是有所不同的。下面分别举例 C3P0、DBCP、HikariCP 和 Druid 的常用配置信息和调优建议:
C3P0
常用配置参数:
(资料图片)
# 连接池中容许的最小连接数目c3p0.minPoolSize=5# 连接池中容许的最大连接数目c3p0.maxPoolSize=50# 连接池初始连接数c3p0.initialPoolSize=10# 连接池当中每次新创建的连接数目c3p0.acquireIncrement=5# 测试可用连接的查询语句c3p0.preferredTestQuery=SELECT 1# 每隔多长时间检查所有连接池中的空闲连接c3p0.idleConnectionTestPeriod=60# 连接池中连接存活的最长时间c3p0.maxIdleTime=600# 从连接池中取出连接的超时时间c3p0.checkoutTimeout=5000# 是否在从连接池中获取连接时测试该连接是否有效c3p0.testConnectionOnCheckout=true
调优建议:
增加 maxPoolSize 可以提高并发量,但也会占用更多的资源。减少 idleConnectionTestPeriod 可以避免因为空闲连接而导致的资源浪费。使用 c3p0.preferredTestQuery 配置自定义 SQL 测试语句可以提高性能。DBCP
常用配置参数:
# 连接池初始连接数dbcp.initialSize=5# 连接池中容许的最大连接数目dbcp.maxActive=20# 连接池中容许的最小连接数目dbcp.maxIdle=10# 最长等待时间,单位毫秒,-1 表示无限等待dbcp.maxWait=-1# 借连接时是否进行有效性检查dbcp.testOnBorrow=true# 归还连接时是否进行有效性检查dbcp.testWhileIdle=true# 多长时间检查一次空闲连接,单位毫秒dbcp.timeBetweenEvictionRunsMillis=1800000# 每次检查空闲连接的数量dbcp.numTestsPerEvictionRun=3# 空闲连接存活的最长时间,单位毫秒dbcp.minEvictableIdleTimeMillis=1800000
调优建议:
增加 maxTotal 可以提高并发量,但也会占用更多的资源。减小 maxIdle 可以减少空闲连接占用的资源。使用 testOnBorrow 和 testOnReturn 等测试机制可以提高连接质量和可靠性。HikariCP
常用配置参数:
# 数据源类名hikari.dataSourceClassName=com.mysql.jdbc.jdbc2.optional.MysqlDataSource# 连接池中容许的最大连接数目hikari.maximumPoolSize=100# 连接池中容许的最小连接数目hikari.minimumIdle=10# 连接池当中每次新创建的连接数目hikari.connectionTimeout=30000# 连接在池中的最大生存时间,单位毫秒hikari.idleTimeout=60000# 数据库服务器名称hikari.dataSource.serverName=localhost# 数据库端口号hikari.dataSource.portNumber=3306# 数据库名称hikari.dataSource.databaseName=example# 数据库用户名hikari.dataSource.user=root# 数据库密码hikari.dataSource.password=root# 连接池名称hikari.poolName=ExamplePool
调优建议:
增加 maximumPoolSize 可以提高并发量,但也会占用更多的资源。减小 idleTimeout 可以减少空闲连接占用的资源。使用 cachePrepStmts 等参数可以提高性能和安全性。Druid
常用配置参数:
# 连接池初始连接数druid.initialSize=5# 连接池中容许的最大连接数目druid.maxActive=20# 连接池中容许的最小连接数目druid.minIdle=5# 最长等待时间,单位毫秒druid.maxWait=60000# 多长时间检查一次空闲连接,单位毫秒druid.timeBetweenEvictionRunsMillis=300000# 空闲连接存活的最长时间,单位毫秒druid.minEvictableIdleTimeMillis=600000# 是否在取连接前进行有效性检查druid.testWhileIdle=true# 是否在归还连接前进行有效性检查druid.testOnBorrow=false# 是否在归还连接时检查连接的可用性druid.testOnReturn=false# 用于检测连接是否有效的 SQL 查询语句druid.validationQuery=SELECT "x"# 连接池使用的过滤器链druid.filters=stat,wall,log4j# 是否开启日志记录功能druid.logAbandoned=true
调优建议:
增加 maxActive 可以提高并发量,但也会占用更多的资源。减小 timeBetweenEvictionRunsMillis 和 minEvictableIdleTimeMillis 可以减少空闲连接占用的资源。使用 testWhileIdle 和 validationQuery 等测试机制可以提高连接质量和可靠性。需要注意的是,具体的配置参数和调优方法可能因数据库的类型和版本、应用服务器的使用情况等而异。为了获得最佳的数据库连接池性能和可靠性,我们需要结合实际需求进行选择和优化,同时参考互联网上的相关资料和经验,不断调整和完善连接池的配置。
在使用数据库连接池时,还需要注意以下几个问题:
1. 连接泄漏:当连接池中的连接没有被释放而一直占用时,就会造成连接泄漏,从而导致系统崩溃。为了避免这种情况,需要在代码中明确地关闭连接。2. 安全性:数据库连接池中可能会存在密码泄露等安全问题,因此需要使用 SSL 加密或者其他安全机制来保证数据的安全。3. 监控和统计:要及时监控和统计数据库连接池的状态和性能指标,以便进行及时调整和优化。
总之,数据库连接池是开发中不可或缺的技术之一。通过合理配置和调优,可以大幅度提升数据库操作的性能和可靠性,从而为开发者和用户带来更好的体验。
关键词:
推荐内容
- 常用的数据库连接池、配置参数及相应的调优方法|
- 厂房征收补偿对象要求有哪些?
- 观察:宋青
- 热议:宋青白釉印花双凤纹斗笠碗
- 中国朝代顺序表 春秋时期是什么时候-世界速讯
- 安徽合肥长丰警方通报男孩躲窗外被打后跳下5楼:
- 王子清卖的蜂蜜是真的吗(王子清加盟费可以退吗)
- 男童被打后从5楼跳下,警方通报详情_每日消息
- 2023杭州国际网球名人赛圆满落幕,莫亚与现场球迷
- 焦点快报!上海市地方金融监管局局长周小全会见复
- 苹果推出Vision Pro,西门子重金押注,“产业元
- 全球热资讯!航价比之王 红旗E-QM5 560KM PLUS正式上市
- 环球热点评!联想I7(联想i758)
- 衡水湖杯”第八届河北省导游大赛——市级选拔赛巡
- 这一省建立健全公立医院负责人年薪制|直辖市大三
- 全球热议:官方亮明态度,网友质疑的多位短跑名将
- 天天快消息!禁毒宣传进校园 守护花蕾健康成长
- 普里戈任回应“瓦格纳”事件
- 外交部:中方支持俄罗斯维护国家稳定 实现发展繁荣
- 当前快报:乐不思蜀的历史人物是谁写的_乐不思蜀的
- 播报:《淮阳新闻》2023.06.26
- 旺苍:“人防+技防”护好“饭碗田”-环球今日讯
- 白带可以检查出性疾病吗_血性白带是什么疾病
- 信用卡逾期多久可以协商?信用卡逾期两天还款后果
- 【全球速看料】太平岁悦添富增额终身寿险优缺点?
- 全球今热点:峻青的第一场雪(峻青的 第一场雪
- 聚焦学生科学素养培育,这所高中牵头打造科学教育
- 惠誉:确认民生银行(01988.HK)“BB+”长期外币发
- 奥翔药业: 公司已在微信公众号上开设官方账号,
- 建材行业周报:积极政策仍值得期待 关注行业供需
- 如何看待止损和盈亏比
- 开封市通许县住建局:上门服务暖人心 主动靠前有
- 畅玩手环a2(关于畅玩手环a2的基本详情介绍)_热
- 双环传动上半年预盈最高3.7亿元 孙公司收购越南
- 北京城市副中心站综合交通枢纽主站房西区主体结构
- 2023天津津南区生源地助学贷款贴息和宽限期规定|
- 日均开行上万列!端午铁路运送旅客7000多万人次
- 苏州进入“隧道时代”:湖底隧道打通“江河湖海”
- 花阡陌
- 东方神话史诗!《封神第一部》发IMAX专属海报