Druid(德鲁伊)配置参数整理

这里整理了一下druid中可以配置的参数以及含义,大家参考的时候注意druid版本,可能有些版本有些参数无效。

name :数据源名称 如果存在多个数据源,监控的时候可以通过名字来区分开来 如果没有配置,将会生成一个名字,格式是"DataSource-"+System.identityHashCode(this)

jdbcUrl(必配) :连接数据库的 url,不同数据库不一样

username(必配)  链接数据库的用户

password (必配)连接数据库的密码。如果你不希望密码直接写在配置文件中,可以使用ConfigFilter。详细看这里:https://github.com/alibaba/druid/wiki/%E4%BD%BF%E7%94%A8ConfigFilter

driverClassName(必配) :数据库驱动类 可配可不配,如果不配置 druid 会根据 url 自动识别 dbType,然后选择相应的 driverClassName(建议配置下)

initialSize(必配) :初始化时建立物理连接的个数,初始化发生在显示调用 init 方法,或者第一次 getConnection 时 

maxIdle :已经不再使用,配置了也没效果

maxWait (必配):获取连接时最大等待时间,单位毫秒 配置了 maxWait 之后,缺省启用公平锁,并发效率会有所下降(可以通过配置 useUnfairLock=true 使用非公平锁)

connectTimeout(必配) 链接数据库链接超时时间,单位是毫秒

socketTimeout(必配) socket链接数据库链接超时时间,单位是毫秒

maxActive(必配):线程池中最大连接数,

minEvictableIdleTimeMillis (必配)(默认30分钟):连接保持空闲而不被驱逐的最长存活时间。Destory线程中如果检测到当前连接的最后活跃时间和当前时间的差值大于minEvictableIdleTimeMillis,则关闭当前连接。这个参数和timeBetweenEvictionRunsMillis参数有点冲突,可默认不管这个参数;

timeBetweenEvictionRunMillis (必配):间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 Destory 线程会检测连接的间隔时间

maxOpenPreparedStatements :要启用 PSCache,必须配置大于0 当大于 0 时,poolPreparedStatements 自动触发修改为 true 在 Druid 中,不会存在 Oracle 下 PSCache 占用内存过多的问题,可以把这个数值配置大一点,比如 100

testOnBorrow :申请连接时执行 validationQuery 检测连接是否有效,做了这个配置会降低性能

testOnReturn :归还连接时执行 validationQuery 检测连接是否有效,做了这个配置会降低性能

testWhileIdle :建议配置为 true,不影响性能,并且保证安全性 ·申请连接的时候检测,如果空闲时间大于 timeBetweenEvictionRunMills,执行 validationQuery 检测连接是否有效 都不会其作用。在mysql中通常为select 'x',在oracle中通常为 select 1 from dual (默认false)是一个检测配置项:建议配置为true,不影响性能,并且保证安全性。申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效;

numTestsPerEvictionRun :废弃,一个 DruidDataSource 只支持一个 EvicationRun

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

exceptionSorter :当数据库抛出一些不可恢复的异常时,抛弃连接     根据dbType自动识别    当数据库抛出一些不可恢复的异常时,抛弃连接

filters :通过别名的方式配置扩展插件,属性类型是字符串 常用的插件有:监控统计用的 filter(stat:监控统计,log:4:日志记录,wall:防御sql注入)
 
proxyFilters :类型是 List<com.alibaba.druid,filter.Filter>,如果同时配置 filter 和 proxyFilters,是组合关系(并非) 

minIdle:线程池最小空闲数,Druid会定期扫描连接数情况,如果扫描的值大于该值就关闭多余的连接数,小于就创建符合要求的连接数;这个参数的主要用处是突然有大量的请求的时候,就会创建新的连接数,这是个比较耗时的操作;

timeBetweenEvictionRunsMillis(默认60秒):判断连接池的连接空闲数是否大于minIdle,如果是则关闭多余的连接数,少的就补上,(如果当前连接池中某个连接在空闲了timeBetweenEvictionRunsMillis时间后仍然没有使用,则被物理性的关闭掉); 执行validationQuery检测连接是否有效。 有两个含义:1) Destroy线程会检测连接的间隔时间 2) testWhileIdle的判断依据,详细看testWhileIdle属性的说明

removeAbandoned(默认false):如果连接泄露,是否需要回收泄露的连接;那么在getNumActive()快要到getMaxActive()的时候,系统会进行无效的Connection的回收,回收的 Connection为removeAbandonedTimeout(默认300秒)中设置的秒数后没有使用的Connection; 对于建立时间超过removeAbandonedTimeout的连接强制关闭

removeAbandonedTimeout(默认300秒):设置druid 强制回收连接的时限,当程序从池中get到连接开始算起,druid将强制回收该连接,单位秒 指定连接建立多长时间就需要被强制关闭

logAbandoned:如果回收了泄露的连接,是否要打印一条log,默认false; 指定发生removeabandoned的时候,是否记录当前线程的堆栈信息到日志中

removeAbandonedTimeoutMillis(默认5分钟):连接回收的超时时间;设置了removeAbandoned为true,Druid会定期检查线程池溢出的情况,如果不是运行状态,且超过设置的时间就会被回收;

maxEvictableIdleTimeMillis: 最大空闲时间 单位毫秒,默认7小时

validationQuery:用来检测连接是否有效的sql,如果validationQuery为空,那么testOnBorrow、testOnReturn、testWhileIdle这三个参数都不会起作用,因为这三个参数都是通过执行参数validationQuery指定的SQL来验证数据库连接的有效性,配置参考validationQuery=SELECT 1

maxPoolPrepareStatementPerConnectionSize: 20 每个连接最多缓存多少个SQL;

keepAlive(默认关闭):初始化连接池时会填充到minIdle数量,连接池中的minIdle数量以内的连接,空闲时间超过minEvictableIdleTimeMillis,则会执行keepAlive操作,打开会一直保持minIdle的数量值;

poolPreparedStatements    false    是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql5.5以下的版本中没有PSCache功能,建议关闭掉。5.5及以上版本有PSCache,建议开启。 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭。

notFullTimeoutRetryCount: 3 #池内借出的连接 + 可用连接 < 最大连接数,则进行重试操作次数,默认0

logSlowSql 是否打印慢sql ,true或者false

slowSqlMillis: 10

还在收集整理中。。。

  • 19
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Spring Boot中,使用Druid作为数据源需要进行一些参数配置。根据引用[2]的配置示例,以下是一些常用的Druid参数配置: 1. `spring.datasource.type`:指定数据源的类型,值为`com.alibaba.druid.pool.DruidDataSource`。 2. `spring.datasource.url`:指定数据库的连接地址。 3. `spring.datasource.username`:指定数据库的用户名。 4. `spring.datasource.password`:指定数据库的密码。 5. `spring.datasource.driver-class-name`:指定数据库驱动的类名。 6. `spring.datasource.filters`:指定Druid的过滤器,多个过滤器使用逗号分隔。 7. `spring.datasource.maxActive`:指定连接池中最大的活跃连接数。 8. `spring.datasource.initialSize`:指定连接池的初始连接数。 9. `spring.datasource.maxWait`:指定获取连接的最大等待时间。 10. `spring.datasource.minIdle`:指定连接池中最小的空闲连接数。 11. `spring.datasource.timeBetweenEvictionRunsMillis`:指定连接池中空闲连接的检测间隔时间。 12. `spring.datasource.minEvictableIdleTimeMillis`:指定连接池中连接的最小空闲时间。 13. `spring.datasource.validationQuery`:指定用于校验连接是否有效的SQL语句。 14. `spring.datasource.testWhileIdle`:指定是否在连接空闲时进行连接的校验。 15. `spring.datasource.testOnBorrow`:指定是否在获取连接时进行连接的校验。 16. `spring.datasource.testOnReturn`:指定是否在归还连接时进行连接的校验。 17. `spring.datasource.poolPreparedStatements`:指定是否缓存PreparedStatement。 18. `spring.datasource.maxOpenPreparedStatements`:指定缓存的PreparedStatement的最大数量。 19. `spring.datasource.logSlowSql`:指定是否打印慢SQL日志。 以上是一些常用的Druid参数配置,你可以根据自己的需求进行相应的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值