Druid基本信息配置
配置 | 缺省值 | 说明 |
---|---|---|
name | 如果存在多数据源的情况下用于区分数据源,如果没有配置将生成一个名字,格式为DataSource-" + System.identityHashCode(this) |
数据库连接配置
配置 | 缺省值 | 说明 |
---|---|---|
url | 数据库连接url | |
username | 连接数据库的用户名 | |
password | 连接数据库的密码 | |
driverClassName | 数据库驱动 |
连接池配置
配置 | 缺省值 | 说明 |
---|---|---|
asyncInit | 是否开启异步初始化,开启后将在初始化时使用异步方式创建,此处需要注意的,加快的不是建立连接的速度,而是执行init() 时的速度,所有连接将有连接创建线程/任务进行创建 | |
initialSize | 初始化连接大小,默认将会建立此数量个连接 | |
minIdle | 0 | 连接池最小连接数 |
maxActive | 8 | 连接池最大活跃数 |
notFullTimeoutRetryCount | 连接池未满时超时重试次数 | |
timeBetweenEvictionRunsMillis | 60000 | 该参数具有双重意义,当作为连接池配置参数时,为间隔多久执行一次连接回收 |
maxWaitThreadCount | -1 | 最多有多少个线程可以处于等待连接状态 |
maxWait | -1 | 获得连接时最大等待时间,单位ms |
failFast | false | 快速失败选项,开启后如果连续失败则在失误一次后不会再重试 |
phyTimeoutMillis | -1 | 物理连接最大持续时间,如果当前连接存在时间超过此值将被回收 |
phyMaxUseCount | -1 | 物理连接最大使用次数,超过该次数的连接将会被回收 |
minEvictableIdleTimeMillis | 1800000 | 最小空闲时间,超过该时间的连接会被认为是空闲连接 |
maxEvictableIdleTimeMillis | 25200000 | 最大空闲时间,超过此时间的连接将会被列入驱逐集合中 |
keepAlive | false | 是否开启保活选项,开启后将保证连接池中连接不小于最小值 |
keepAliveBetweenTimeMillis | 1800000 | 多久时间之内的连接保持存活 |
poolPreparedStatements | false | 是否打开PSCache参数 |
maxPoolPreparedStatementPerConnectionSize | 10 | PSCache数量,该值大于0会默认开启PSCache |
initVariants | false | 是否开启初始化连接变量 |
initGlobalVariants | false | 是否开启初始化连接全局变量 |
useUnfairLock | false | 是否使用非公平锁 |
killWhenSocketReadTimeout | false | Socket超时直接杀死 |
connectProperties | 连接属性配置 | |
initConnectionSqls | 初始化连接SQL | |
load.spifilter.skip | false | 是否跳过SPI机制加载SQL |
checkExecuteTime | false | 检查执行时间参数 |
Filter配置
配置 | 缺省值 | 说明 |
---|---|---|
filters | 所使用的Filter名,配置后将加载Filter | |
clearFiltersEnable | 是否开启清空Filters | |
stat.sql.MaxSize | 监控SQL最大大小,默认1000 | |
stat.mergeSql | false | 是否合并SQL |
stat.slowSqlMillis | 3000 | 多长时间认为是慢SQL |
stat.logSlowSql | false | 是否通过日志打印慢SQL |
stat.slowSqlLogLevel | ERROR | 慢SQL的日志等级 |
wall.logViolation | false | 是否记录异常SQL(认为是被攻击的) |
wall.throwException | true | 异常SQL(认为是被攻击的)是否抛出异常 |
wall.tenantColumn | 待补全 | |
wall.selelctAllow | true | 待补全 |
wall.updateAllow | true | 待补全 |
wall.deleteAllow | true | 待补全 |
wall.insertAllow | true | 待补全 |
wall.multiStatementAllow | false | 待补全 |
wall.selectLimit | -1 | 待补全 |
wall.updateCheckColumns | 待补全 | |
wall.updateWhereNoneCheck | false | 待补全 |
wall.deleteWhereNoneCheck | false | 待补全 |
log.conn | true | 是否log连接信息 |
log.stmt | true | 是否log语句对象 |
log.rs | true | 是否log返回对象 |
log.stmt.executableSql | true | 是否log执行SQL |
log.conn.logError | true | 是否log连接异常 |
log.stmt.logError | true | 是否log语句异常 |
log.rs.logError | true | 是否log返回异常 |
测试连接有效性
配置 | 缺省值 | 说明 |
---|---|---|
testWhileIdle | true | 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 |
testOnBorrow | false | 申请连接时执行validationQuery检测连接是否有效,做了这个配置会降低性能。 |
testOnReturn | false | 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。 |
validationQuery | 用来检测连接是否有效的sql | |
validationQueryTimeout | -1 | 检测连接超时时间 |
timeBetweenEvictionRunsMillis | 60000 | 该参数具有双重意义,在校验连接有效性时为连接空闲时间 |
监控配置
配置 | 缺省值 | 说明 |
---|---|---|
useGlobalDataSourceStat | false | 是否开启全局数据源统计,开启后统计结果将包含所有数据源 |
resetStatEnable | 是否开启重置数据源统计 | |
timeBetweenLogStatsMillis | 数据源统计记录间隔时间,单位ms |