数据库连接池

基本知识

享元模式 避免数据库连接频繁的创建、销毁带来的性能损耗

常见的数据库连接池

druid

原理

druid连接的创建、可用性检查、释放、获取等过程原理

配置

参考文章

com.alibaba.druid.pool.DruidDataSource
//url 用户名 密码 驱动

//初始化连接数
initialSize

//最大连接数
maxActive

//最小连接数
minIdle

//获取连接最大的等待时间(若配置,则默认使用公平锁,可通过useUnfairLock=true使用非公平锁)
maxWait

// 连接有效性检测,MySQL支持两种(ping和validationQuery sql,默认为ping,其他数据库只支持validationQuery )
druid.mysql.usePingMethod
validationQuery

//物理连接初始化时执行的sql
connectionInitSqls

//申请链接时,使用validationquery检查链接是否可用,默认true
testOnBorrow
//归还链接时,使用validationquery检查链接是否可用,默认false
testOnReturn
//空闲时间大于指定时间时(timeBetweenEvictionRunsMillis),使用validationquery检查链接是否可用,不影响性能保证安全性
testWhileIdle    timeBetweenEvictionRunsMillis(空闲检测时间间隔,destory线程检查间隔时间)

// filter,责任链模式扩展组件(如监控、日志、防sql注入等,配置别名)
filter
// proxyFilters,与filter作用一样,是组合关系,配置的类型是List<com.alibaba.druid.filter.Filter>
proxyFilters

//是否开启缓存preparedStatement(对支持游标的数据库性能提升大,如Oracle,mysql不建议开);	可以psCache的大小
poolPreparedStatements       maxOpenPreparedStatements


//数据库抛出不可恢复的异常时(如网络断开),抛弃连接
exceptionSorter

mysql数据有ping和validationQeury两种方式检测连接有效性,可以在建立物理连接(connectionInitSqls)、获取连接(testOnBorrow)、归还连接(testOnReturn)、空闲链接定时探活(testWhileIdle)等时机使用

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值