基础参数说明
由于DruidDataSource大部分属性都是参考DBCP的
所以可以参考下DBCP配置说明
字段 | 默认值 | 说明 |
---|---|---|
url | 连接数据库的url,不同数据库连接字符串不一样 | |
username | 连接数据库的用户名 | |
password | 连接数据库的密码 | |
driverClassName | 数据库驱动,这一项可配可不配,默认可根据URL自动识别,Druid会根据url自动识别dbType,然后选择相应的driverClassName。 | |
initialSize | 0 | 启动池时创建的初始连接数,初始化发生在显示调用init方法或者第一次getConnection时。 |
maxAtivce | 8 | 最大连接数 |
minIdle | 0 | 最小连接数 |
maxWait | 无限期 | 没有可用连接时,最大等待时间(毫秒) ,-1:无限期等待 |
validationQuery | 检测连接是否有效的SQL,必须是一个查询语句,常用SELECT ‘X’。若validationQuery为null,则testOnBorrow、testOnReturn、testWhileIdle等配置不起作用。 | |
validationQueryTimeout | no timeout | 检测连接是否有效的超时时间(秒)。底层调用jdbc Statement对象的void setQueryTimeout(int seconds)方法 |
testOnBorrow | true | 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 |
testOnReturn | false | 归还连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 |
testWhileIdle | false | 建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 |
timeBetweenEvictionRunsMillis | 60000 | 有两个含义:一个是desdtroy线程会检测连接的间隔时间,如果连接空闲时间大于等于minEvictableIdleTimeMillis则关闭物理连接;另一个是testWhileIdle的判断依据,详细看testWhileIdle属性的说明,单位毫秒 |
minEvictableIdleTimeMillis | 连接保持空闲而不被驱逐的最小时间(毫秒) | |
connectionInitSqls | 物理连接初始化的时候执行的sql | |
exceptionSorter | 默认根据dbType自动识别。当数据库抛出一些不可恢复的异常时,抛弃连接。 | |
filters | 属性类型是字符串,通过别名的方式配置扩展插件,常用的插件有:监控统计用的filter:stat、日志用的filter:log4j、防御sql注入的filter:wall。 | |
proxyFilters | 类型是List<com.alibaba.druid.filter.Filter>,如果同时配置了filters和proxyFilters,是组合关系,并非替换关系。 | |
asyncInit | 如果有initialSize数量较多时,打开会加快应用启动时间。 | |
poolPreparedStatements | false | 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。 |
maxPoolPreparedStatementPerConnectionSize | -1 | 要启用PSCache,必须配置大于0,当大于0时,poolPreparedStatements自动触发修改为true。在Druid中,不会存在Oracle下PSCache占用内存过多的问题,可以把这个数值配置大一些,比如说100。 |
removeAbandoned | 当程序存在缺陷时,申请的连接忘记关闭,这时候,就存在连接泄漏了。Druid提供了RemoveAbandanded相关配置,用来关闭长时间不使用的连接。注:配置removeAbandoned对性能会有一些影响,建议怀疑存在泄漏之后再打开。在上面的配置中,如果连接超过30分钟未关闭,就会被强行回收,并且日志记录连接申请时的调用堆栈。 | |
removeAbandonedTimeout | 连接超时多长时间关闭(毫秒) | |
logAbandoned | 关闭abandoned连接时输出错误日志。 |