全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

关于数据库连接池Druid使用说明

根据综合性能,可靠性,稳定性,扩展性,易用性等因素替换成最优的数据库连接池。

Druid:druid-1.0.29

数据库 Mysql.5.6.17

替换目标:替换掉C3P0,用druid来替换

替换原因:

1、性能方面 hikariCP>druid>tomcat-jdbc>dbcp>c3p0 。hikariCP的高性能得益于最大限度的避免锁竞争。

2、druid功能最为全面,sql拦截等功能,统计数据较为全面,具有良好的扩展性。

3、综合性能,扩展性等方面,可考虑使用druid或者hikariCP连接池,比较方便对jdbc接口进行监控跟踪等。

4、可开启prepareStatement缓存,对性能会有大概20%的提升。

psCache是connection私有的,所以不存在线程竞争的问题,开启pscache不会存在竞争的性能损耗。

psCache的key为prepare执行的sql和catalog等,value对应的为prepareStatement对象。开启缓存主要是减少了解析sql的开销。

5、3p0历史悠久,代码及其复杂,不利于维护。并且存在deadlock的潜在风险。

6、Druid可以打印SQL,慢查询方面的日志

Druid 参数

配置参数 缺省值 游戏服设置的值 参数说明
initialSize 0 4 初始化连接数量
minIdle 0 4 最小空闲连接数
maxActive 8 8 最大并发连接数
maxWait -1L 60000 获取连接时最大等待时间,单位毫秒。配置了maxWait之后,
缺省启用公平锁,并发效率会有所下降,
如果需要可以通过配置useUnfairLock属性为true使用非公平锁。
timeBetweenEvictionRunsMillis 60000 60000 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
Destroy线程会检测连接的间隔时间
minEvictableIdleTimeMillis 1800000 1800000 配置一个连接在池中最小生存的时间,单位是毫秒
validationQuery null select 1 用来检测连接是否有效的sql,要求是一个查询语句
testOnBorrow FALSE FALSE 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。
testOnReturn FALSE FALSE 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能
testWhileIdle TRUE TRUE 建议配置为true,不影响性能,并且保证安全性。 申请连接的时候检测,如果
空闲时间大于 timeBetweenEvictionRunsMillis, 执行validationQuery检测连接是否有效。
poolPreparedStatements FALSE TRUE false 是否缓存preparedStatement,也就是PSCache。
PSCache对支持游标的数据库性能提升巨大,比如说oracle。
在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。
5.5及以上版本有PSCache,建议开启。
maxPoolPreparedStatementPerConnectionSize 10 100 要启用PSCache,必须配置大于0,当大于0时,
poolPreparedStatements自动触发修改为true。
单个connnection独享一个statement cache,也就是说maxOpenPreparedStatements是针对单个connection链接的

运行原理:

数据库连接池在初始化的时候会创建initialSize个连接,当有数据库操作时,会从池中取出一个连接。如果当前池中正在使用的连接数等于maxActive,则会等待一段时间,等待其他操作释放掉某一个连接,如果这个等待时间超过了maxWait,则会报错;如果当前正在使用的连接数没有达到maxActive,则判断当前是否空闲连接,如果有则直接使用空闲连接,如果没有则新建立一个连接。在连接使用完毕后,不是将其物理连接关闭,而是将其放入池中等待其他操作复用。 同时连接池内部有机制判断,如果当前的总的连接数少于miniIdle,则会建立新的空闲连接,以保证连接数得到miniIdle。如果当前连接池中某个连接在空闲了timeBetweenEvictionRunsMillis时间后仍然没有使用,则被物理性的关闭掉。有些数据库连接的时候有超时限制(mysql连接在8小时后断开),或者由于网络中断等原因,连接池的连接会出现失效的情况,这时候设置一个testWhileIdle参数为true,可以保证连接池内部定时检测连接的可用性,不可用的连接会被抛弃或者重建,最大情况的保证从连接池中得到的Connection对象是可用的。当然,为了保证绝对的可用性,你也可以使用testOnBorrow为true(即在获取Connection对象时检测其可用性),不过这样会影响性能。

如果要进行SQL监控,可以加入以下代码:

Log4j2Filter log4j2 = new Log4j2Filter(); 
log4j2.setResultSetLogEnabled(false); 
log4j2.setStatementSqlPrettyFormat(false); 
log4j2.setStatementExecutableSqlLogEnable(true); 
 
log4j2.setDataSourceLogEnabled(false); 
log4j2.setConnectionLogEnabled(false); 
log4j2.setStatementLogEnabled(false); 
log4j2.setResultSetLogEnabled(false); 
ret.setProxyFilters(Arrays.asList(log4j2)); 

闲置检测,创建连接,废弃连接清理由这三线程管理

Daemon Thread [Abandoned connection cleanup thread] 
Daemon Thread [Druid-ConnectionPool-Create-1184124073] 
Daemon Thread [Druid-ConnectionPool-Destroy-1184124073] 

总结

以上就是本文关于数据库连接池Druid使用说明的全部内容,希望对大家有所帮助。感兴趣的朋友可以参阅:MySQL prepare原理详解等及其他相关专题,有什么问题可以随时留言,小编会及时回复大家的。


# 数据库连接池  # 数据库连接池配置  # druid  # 连接池原理  # mysql数据库连接池配置教程  # 解决当MySQL数据库遇到Syn Flooding问题  # MYSQL数据库连接池及常见参数调优方式  # 池中  # 连接池  # 连接数  # 可用性  # 则会  # 会有  # 将其  # 是一个  # 有什么  # 你也  # 等方面  # 感兴趣  # 可以通过  # 如果没有  # 不存在  # 可以使用  # 等功能  # 报错  # 建立一个  # 高性能 


相关文章: 儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  北京建设网站制作公司,北京古代建筑博物馆预约官网?  高防服务器:AI智能防御DDoS攻击与数据安全保障  深圳网站制作平台,深圳市做网站好的公司有哪些?  c++怎么用jemalloc c++替换默认内存分配器【性能】  家庭建站与云服务器建站,如何选择更优?  如何挑选优质建站一级代理提升网站排名?  建站之星官网登录失败?如何快速解决?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  小程序网站制作需要准备什么资料,如何制作小程序?  建站之星如何取消后台验证码生成?  如何零基础开发自助建站系统?完整教程解析  专业的网站制作设计是什么,如何制作一个企业网站,建设网站的基本步骤有哪些?  5种Android数据存储方式汇总  PHP正则匹配日期和时间(时间戳转换)的实例代码  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  建站之星在线客服如何快速接入解答?  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  如何在Windows虚拟主机上快速搭建网站?  网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?  如何在宝塔面板中修改默认建站目录?  沈阳制作网站公司排名,沈阳装饰协会官方网站?  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  南宁网站建设制作定制,南宁网站建设可以定制吗?  如何快速打造个性化非模板自助建站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  湖州网站制作公司有哪些,浙江中蓝新能源公司官网?  seo网站制作优化,网站SEO优化步骤有哪些?  如何在橙子建站中快速调整背景颜色?  如何彻底卸载建站之星软件?  东莞专业制作网站的公司,东莞大学生网的网址是什么?  广东企业建站网站优化与SEO营销核心策略指南  Android滚轮选择时间控件使用详解  如何正确下载安装西数主机建站助手?  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  建站主机如何选?高性价比方案全解析  建站之星CMS五站合一模板配置与SEO优化指南  如何快速搭建高效服务器建站系统?  如何自定义建站之星模板颜色并下载新样式?  开封网站制作公司,网络用语开封是什么意思?  行程制作网站有哪些,第三方机票电子行程单怎么开?  如何通过虚拟主机快速完成网站搭建?  c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】  公司网站制作需要多少钱,找人做公司网站需要多少钱?  建站OpenVZ教程与优化策略:配置指南与性能提升  建站之星如何实现五合一智能建站与营销推广?  Bpmn 2.0的XML文件怎么画流程图  香港服务器选型指南:免备案配置与高效建站方案解析  定制建站哪家更专业可靠?推荐榜单揭晓  ,石家庄四十八中学官网? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。