DruidDataSource参数详解基础参数说明
由于DruidDataSource⼤部分属性都是参考DBCP的
所以可以参考下DBCP配置说明
字段默
认
值
druid连接池配置详解说明
url连接数据库的url,不同数据库连接字符串不⼀样username连接数据库的⽤户名
password连接数据库的密码
driverClassN ame 数据库驱动,这⼀项可配可不配,默认可根据URL⾃动识别,Druid会根据url⾃动识别dbType,然后选择相应的driverClassName。
initialSize0启动池时创建的初始连接数,初始化发⽣在显⽰调⽤init⽅法或者第⼀次getConnection时。maxAtivce8最⼤连接数
minIdle0最⼩连接数
maxWait ⽆
限
期
没有可⽤连接时,最⼤等待时间(毫秒) ,-1:⽆限期等待
validationQu ery 检测连接是否有效的SQL,必须是⼀个查询语句,常⽤SELECT ‘X’。若validationQuery为null,则testOnBorrow、testOnReturn、testWhileIdle等配置不起作⽤。
validationQu eryTimeout n
o
ti
m
e
o
ut
检测连接是否有效的超时时间(秒)。底层调⽤jdbc Statement对象的void setQueryTimeout(int seconds)⽅法
testOnBorro w tr
u
e
申请连接时执⾏validationQuery检测连接是否有效,做了这个配置会降低性能。
testOnRetur n fa
ls
e
归还连接时执⾏validationQuery检测连接是否有效,做了这个配置会降低性能。
testWhileIdle fa
ls
e
建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间⼤于timeBetweenEvictionRunsMillis,执⾏validationQuery检测连接是否有效。
timeBetween EvictionRun sMillis 6
有两个含义:⼀个是desdtroy线程会检测连接的间隔时间,如果连接空闲时间⼤于等于minEvictableIdleTimeMillis则关闭物理连接;另⼀个是testWhileIdle的判断依据,详细看testWhileIdle属性的说明,单位毫秒
minEvictable
IdleTimeMilli
s
连接保持空闲⽽不被驱逐的最⼩时间(毫秒)
connectionIn
itSqls
物理连接初始化的时候执⾏的sql
exceptionSo
rter
默认根据dbType⾃动识别。当数据库抛出⼀些不可恢复的异常时,抛弃连接。
filters 属性类型是字符串,通过别名的⽅式配置扩展插件,常⽤的插件有:监控统计⽤的filter:stat、⽇志⽤的filter:log4j、防御sql注⼊的filter:wall。
proxyFilters 类型是List<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并⾮替换关系。
asyncInit如果有initialSize数量较多时,打开会加快应⽤启动时间。
poolPrepare dStatements fa
ls
e
是否缓存preparedStatement,也就是PSCache。PSCache对⽀持游标的数据库性能提升巨⼤,⽐如说oracle。在mysql下建议关闭。
maxPoolPre
paredStatem entPerConn ectionSize -1
要启⽤PSCache,必须配置⼤于0,当⼤于0时,poolPreparedStatements⾃动触发修改为true。在Druid中,不会存在Oracle下PSCache占⽤内存过多的问题,可以把这个数值配置⼤⼀些,⽐如说100。
removeAban doned 当程序存在缺陷时,申请的连接忘记关闭,这时候,就存在连接泄漏了。Druid提供了RemoveAbandanded相关配置,⽤来关闭长时间不使⽤的连接。注:配置removeAbandoned对性能会有⼀些影响,建议怀疑存在泄漏之后再打开。在上⾯的配置中,如果连接超过30分钟未关闭,就会被强⾏回收,并且⽇志记录连接申请时的调⽤堆栈。
removeAban
donedTimeo
ut
连接超时多长时间关闭(毫秒)
logAbandon ed 关闭abandoned连接时输出错误⽇志。
字段默
认
值
说明
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论