Druid配置参数详解-maxEvictableIdleTimeMillis,minEvictableIdleTimeMillis(转)

# 数据源配置 spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: # 主库数据源 master: url: jdbc:mysql://127.0.0.1:3306/sac_data?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: root driverClassName: com.mysql.cj.jdbc.Driver # 从库数据源 slave: # 从数据源开关/默认关闭 enabled: true url: jdbc:sqlserver://localhost:1433;DatabaseName=Person_DB username: sa password: 123456 driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver # 初始连接数 initialSize: 5 # 最小连接池数量 minIdle: 10 # 最大连接池数量 maxActive: 20 # 配置获取连接等待超时的时间 maxWait: 60000 # 配置连接超时时间 connectTimeout: 30000 # 配置网络超时时间 socketTimeout: 60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 # 配置一个连接在池中最大生存的时间,单位是毫秒 maxEvictableIdleTimeMillis: 900000 # 配置检测连接是否有效 validationQuery: SELECT 1 testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true url-pattern: /druid/* login-username: ruoyi login-password: 123456 filter: stat: enabled: true log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true 根据MariaDB 更改
03-21
### Druid连接池中testWhileIdle配置参数的作用和使用方法 在Druid连接池中,`testWhileIdle`是一个重要的配置参数,用于控制连接池在空闲时是否对连接进行有效性验证。当`testWhileIdle`设置为`true`时,连接池会在连接处于空闲状态时自动检查连接的有效性,以确保连接池中的连接始终可用[^3]。 #### 作用 - **空闲连接有效性检查**:当`testWhileIdle`为`true`时,连接池会在连接空闲时检查连接是否仍然有效。这有助于确保连接池中始终有可用的连接,避免因连接失效而导致的数据库访问问题[^3]。 - **减少连接验证开销**:与`testOnBorrow`和`testOnReturn`不同,`testWhileIdle`仅在连接空闲时进行验证,减少了每次获取或释放连接时的验证开销[^3]。 #### 使用方法 - **配置方式**:在`druid.properties`配置文件中,设置`testWhileIdle=true`以启用空闲连接的有效性检查。同时,通常还需要配置`validationQuery`参数,用于指定验证连接有效性的SQL查询语句。例如,可以使用`SELECT 1`作为验证查询[^2]。 ```properties testWhileIdle=true validationQuery=SELECT 1 ``` - **依赖ValidConnectionChecker**:Druid提供了针对不同数据库的`ValidConnectionChecker`实现,例如`MySqlValidConnectionChecker`,用于验证特定数据库连接的有效性。如果未显式配置`validationQuery`,Druid会根据数据库类型自动选择合适的`ValidConnectionChecker`进行验证。 #### 注意事项 - **性能影响**:虽然`testWhileIdle`能够确保连接的有效性,但频繁的空闲连接检查可能会对性能产生一定影响。因此,建议根据实际应用场景调整检查频率,例如通过`timeBetweenEvictionRunsMillis`参数控制检查间隔[^2]。 - **与其他配置的配合使用**:为了达到最佳效果,`testWhileIdle`通常需要与`testOnBorrow`和`testOnReturn`等参数配合使用。但在大多数情况下,推荐仅启用`testWhileIdle`,并禁用`testOnBorrow`和`testOnReturn`,以减少不必要的性能开销[^3]。 ### 示例配置 以下是一个典型的Druid连接池配置示例,其中包含了`testWhileIdle`的相关设置: ```properties password=root initialSize=5 maxActive=10 maxWait=3000 filters=stat timeBetweenEvictionRunsMillis=60000 minEvictableIdleTimeMillis=300000 validationQuery=SELECT 1 testWhileIdle=true testOnBorrow=false testOnReturn=false poolPreparedStatements=false maxPoolPreparedStatementPerConnectionSize=200 ``` ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值