druid 配置理解
官方文档中的很多配置,不是太理解或者貌似理解了,自己不实践一下,心里也不踏实,所以决定自己搞一个demo测试一下理解理解各个配置到底是什么意思
一,druidDataSource 配置
参数名称 | 我的理解 | 官方说明 |
---|---|---|
pool-prepared-statements | preparedStatement的创建会消耗很多的系统资源,同样的sql可以重用preparedStatement | 是否缓存preparedStatement,也就是PSCache。PSCache对支持游标的数据库性能提升巨大,比如说oracle。在mysql下建议关闭 |
initial-size | 初始化连接数 | 连接池建立时创建的初始化连接数 |
max-pool-prepared-statement-per-connection-size | 这个我不是太确定,这个应该是PSCache的缓存大小吧,官方说可以给大一点,单位也不清楚,那就给100吧 | … |
validation-query | 这个配置还是很容易理解的,关键是怎么去验证一下,比如在testOnBorrow=true,当申请链接时,确实会执行validation-query.我是这样验证的,validation-query=select 1 from dualss(有语法错误的sql),结果在申请链接的时候就报错了,证明在testOnBorrow的时候确实执行了validation-query,后面的testOnReturn,testWhileIdle我没有验证,应该都一样 | 用来检测连接是否有效的sql,要求是一个查询语句,常用select ‘x’。如果validationQuery为null,testOnBorrow、testOnReturn、testWhileIdle都不会起作用。 |
validation-query-timeout | 不知道怎么验证 | … |
test-on-borrow | 不知道怎么验证,因为无论是true,还是false,只要validation-query有值,都会执行一下validation-query | |
test-on-return | 不知道怎么验证 | |
test-while-idle | 不知道怎么验证 | |
time-between-eviction-runs-millis | 默认是1分钟,就是destory每隔1分钟会执行一次 |
二,后台监控页面中的各数值的含义
我的端口是8585,就是如下图这个界面中每行
参数名称 | 中文 | 我的理解 | 官方说明 |
---|---|---|---|
ActiveCount | 活跃连接数 | 有n个连接正在执行sql,那么这个值就为n | 当前连接池中活跃连接数 |
InitialSize | 初始化连接大小 | 默认就是项目启动就会初始化的连接数 | 连接池建立时创建的初始化连接数 |
LogicConnectCount | 逻辑连接打开次数 | 与MaxActive没有关系,连接被用一次,LogicConnectCount就会+1,就是连接池中的连接被用次数综合 | 产生的逻辑连接建立总数 |
minEvictableIdleTimeMillis | 连接保持空闲而不被驱逐的最小时间 |