Druid连接池的常用配置及默认值

Druid 是一个高性能的 JDBC 连接池,提供了多种配置选项来优化连接池的性能和稳定性。以下是 Druid 默认配置参数的详细解释:

  1. initialSize
    定义:连接池初始化时创建的连接数。
    默认值:0
    解释:如果设置为 0,Druid 在启动时不会创建连接。连接池在第一次请求时才会创建连接。设置 initialSize 为一个正值可以在启动时预先创建一定数量的连接,以减少第一次请求时的延迟。
  2. maxActive
    定义:连接池中最大的活动连接数。
    默认值:8
    解释:这是连接池中同时允许的最大连接数。如果池中活动连接数达到 maxActive,进一步的连接请求将被阻塞,直到有连接被释放。设置适当的 maxActive 可以平衡系统负载和资源利用。
  3. minIdle
    定义:连接池中最小的空闲连接数。
    默认值:0
    解释:这是连接池中保持的最小空闲连接数。如果当前空闲连接数低于这个值,连接池会创建新的连接来补充。minIdle 可以用来确保连接池在负载增加时能迅速提供连接。
  4. maxWait
    定义:获取连接时的最大等待时间。
    默认值:30000 ms (30秒)
    解释:如果连接池中没有空闲连接,并且连接池中的活动连接数已经达到 maxActive,请求连接的线程将等待最长 maxWait 毫秒时间。如果在这个时间内没有获取到连接,将抛出 SQLTimeoutException 异常。
  5. testOnBorrow
    定义:从连接池中借用连接时是否进行验证。
    默认值:false
    解释:如果设置为 true,每次从连接池借用连接时,都会执行验证查询(如果设置了 validationQuery)。这有助于确保连接在借用时是有效的,但可能会增加性能开销。
  6. testOnReturn
    定义:将连接返回到连接池时是否进行验证。
    默认值:false
    解释:如果设置为 true,在将连接返回到连接池时,Druid 会执行验证查询以确保连接仍然有效。这个配置项通常不需要设置为 true,因为验证返回连接的性能开销较大。
  7. testWhileIdle
    定义:空闲连接在被检查时是否进行验证。
    默认值:false
    解释:如果设置为 true,Druid 会在空闲连接上执行验证查询(如果设置了 validationQuery),以确保连接在空闲时仍然有效。这有助于检测和清理不再有效的连接。
  8. validationQuery
    定义:验证连接是否有效的 SQL 查询语句。
    默认值:null
    解释:当 testOnBorrow、testOnReturn 或 testWhileIdle 配置为 true 时,Druid 使用此查询来验证连接的有效性。例如,可以使用 SELECT 1 作为验证查询。设置适当的验证查询有助于确保连接在使用时是有效的。
  9. poolPreparedStatements
    定义:是否缓存预编译的 SQL 语句。
    默认值:false
    解释:如果设置为 true,连接池将缓存预编译的 SQL 语句,这可以提高 SQL 执行性能,尤其是当相同的 SQL 语句被频繁执行时。但缓存预编译语句也会占用额外的内存。
  10. connectionErrorRetryAttempts
    定义:连接错误重试次数。
    默认值:0
    解释:在连接失败时,Druid 会尝试重新连接指定次数。设置为 0 表示不进行重试。如果需要在连接错误时自动重试,可以增加此值。
  11. breakAfterAcquireFailure
    定义:获取连接失败时是否中断。
    默认值:false
    解释:如果设置为 true,在获取连接失败时,连接池会立即中断尝试获取连接的操作。设置为 false,连接池会继续尝试获取连接,直到达到 maxWait 超时时间。
  12. timeBetweenEvictionRunsMillis
    定义:空闲连接的检测周期。
    默认值:30000 ms (30秒)
    解释:这是 Druid 定期检查和清理空闲连接的时间间隔。如果空闲连接超过了这个时间间隔,Druid 会进行空闲连接的检测和清理。这有助于保持连接池中的连接健康状态。
  13. minEvictableIdleTimeMillis
    定义:空闲连接的最小可驱逐时间。
    默认值:60000 ms (60秒)
    解释:这是空闲连接在被驱逐之前保持空闲的最小时间。如果一个连接空闲时间超过了这个值,它将被认为是可以驱逐的。这个配置有助于清理长时间未使用的连接。
    总结
    这些配置项共同作用于 Druid 连接池的行为,影响连接池的性能、资源利用率以及对异常情况的处理。在实际应用中,可以根据具体的需求和应用场景调整这些参数,以优化连接池的性能和稳定性。
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大骨熬汤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值