数据库连接池配置

更新时间:2023-05-29 07:15:42

本文主要对连接池的配置参数,包括 ZDAL 参数、Druid 参数、DBCP 参数、C3P0 参数以及 JDBC 参数等进行介绍。

数据源配置参数

参数含义

说明

ZDAL 参数

Druid 参数

DBCP 参数

C3P0 参数

参数含义

说明

ZDAL 参数

Druid 参数

DBCP 参数

C3P0 参数

初始化连接数

连接池初始化时建立连接数。

prefill=true 初始化到 minConn

initialSize(0)

initialSize(0)

initialPoolSize(3)

最小连接数

最小可使用连接数,这个会让连接池日常一直保留着这么多个链接。

minConn(0)

minIdle(0)

minIdle(0)

minPoolSize(3)

最大连接数

最大可使用连接数,超过这个连接池会抛连接池已满异常。

maxConn(10)

maxActive(8)

maxActive(8)

maxActive(8)

链接空闲超时时间

设置链接空闲时间一段时间不用时,连接池主动断开链接。MySQL 默认 8 小时断开链接,主备切换时链接会变成脏连接。如果没有这个机制,可能会导致请求失败。云上 OceanBase SLB 超时时间 15 分钟,可以将超时时间设置为 12 分钟。

idleTimeoutMinutes(30min)

minEvictableIdleTimeMillis(30min)

minEvictableIdleTimeMillis(30min) 需要设置 timeBetweenEvictionRunsMillis(-1) > 0 才会生效,该参数控制异步检查周期

maxIdleTime(0 表示不超时

连接池获取链接的超时时间

如果设置太大的话,链接池满了会导致应用响应太慢。

blockingTimeoutMillis(500ms)

maxWait(-1 表示不超时

maxWaitMillis(-1 表示不超时

checkoutTimeout(0 表示不超时

连接获取不释放超时时间

超时这个时间的话,连接一直没有放回连接池会被直接销毁掉。可以防止连接泄露,但是会影响事务使用时间限制。

removeAbandonedTimeoutMillis(300s)

removeAbandonedTimeout(300s)

JDBC 配置参数

JDBC 重要的几个参数,一定需要设置。均可以设置到连接池的 ConnectionProperties 中,或者 JdbcUrl 上。具体参数及其说明如下表所示。

参数

说明

默认值

参数

说明

默认值

socketTimeout

网络读超时时间,如果不设置默认是 0,使用 OS 默认超时时间

5000ms

connectTimeout

链接建立超时时间,如果不设置默认是 0,使用 OS 默认超时时间

500ms

连接池设置建议

  • 管控台日常的最小连接数保持两个即可,具体根据业务并发及事务时间来调整。

  • 设置连接空闲超时时间 ,推荐 30 分钟。

    MySQL 默认 8 小时连接主动断开,客户端无法感知,导致存在脏连接。连接池可以通过心跳、testOnBorrow 等机制来校验连接是否存活,当超过这个时间连接没有使用直接断开。

  • 本页导读 (0)
  • 数据源配置参数
  • JDBC 配置参数
  • 连接池设置建议
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等