数据源连接池配置参数(连接池类的属性)

最后更新:2023-10-29 17:11:35 | 状态:未完成

注意:不同版本的连接池参数名会不一样,url/driverClass经常会出现不同的名称如jdbcUrl/driver/driverClassName等。要打开源码看一样当前版本的属性
HikariCP查看com.zaxxer.hikari.HikariDataSource
Druid查看com.alibaba.druid.pool.DruidDataSource
(这里的类和包也有可能换)

如果补齐提示与实际不一致,如提示url实际是需要jdbc-url,可能通过DataSourceKeyMap.reg(new String[]{"url","jdbcUrl"})将多个属性关联,这样进进无论写哪一个都可以正常解析

Spring默认连接池HikariCP
参数名 默认值 描述
jdbcUrl null 数据库连接URL。
username null 连接数据库的用户名。
password null 连接数据库的密码。
driverClassName null JDBC驱动类名。
connectionTimeout 30000(ms) 获取连接超时时间,默认30秒。
idleTimeout 600000(ms) 连接空闲超时时间,默认10分钟。
maxLifetime 1800000(ms) 最大生命周期,默认30分钟。
connectionTestQuery null 测试连接是否可用的查询语句,如果设置了该参数,则每次从连接池中获取连接时都会执行该查询语句,以确保连接可用性。
minimumIdle 10 最小空闲连接数,默认10个。
maximumPoolSize 10 最大连接数,默认10个。
poolName HikariPool-1 池名称,用于日志记录和调试。
readOnly false 是否将数据库访问标记为只读模式,以便在某些情况下能够更好地优化性能(如MySQL)。
maxLifetime auto(30m) >池中每个连接的最长生命周期。当达到此限制时,连接将被关闭,如果池中有更少的空闲连接,则将创建新连接以替换该连接。可选值为“auto”(使用默认值)或指定时间间隔(例如“300000”表示5分钟)
connectionTestTimeout 5000 测试连接是否可用的超时时间,默认5秒钟。
idleTimeout 600000 连接空闲超时时间,默认10分钟。
maxLifetime 1800000 最大生命周期,默认30分钟。
minIdle 10 最小空闲连接数,默认10个。
maxPoolSize 10 最大连接数,默认10个。
poolName HikariPool-1 池名称,用于日志记录和调试。
transactionIsolation null 数据库事务隔离级别,可以是字符串形式(如"TRANSACTION_READ_COMMITTED")或整数形式(如2)。如果未设置,则使用JDBC驱动程序提供的默认值。


Druid连接池的参数及其默认值:
参数名 默认值 描述
url null 数据库连接URL。
username null 连接数据库的用户名。
password null 连接数据库的密码。
driverClassName null JDBC驱动类名。
initialSize 0 初始化时创建的连接数,默认为0。
maxActive 8 最大活跃连接数,默认为8个。
minIdle 0 最小空闲连接数,默认为0个。
maxWait -1 获取连接时最大等待时间,单位毫秒,默认无限制(-1)。
maxWaitMillis -1 获取连接时最大等待时间,单位毫秒,默认无限制(-1)。
maxPoolPreparedStatementPerConnectionSize -1 每个物理连接中缓存PreparedStatement对象的最大数目,默认-1表示不限制。当应用程序同时使用大量预处理语句时,建议将该属性设置为较大的值以提高性能。
poolPreparedStatements false 是否缓存PreparedStatement,即PSCache。
poolPreparedStatementsNumPerConnection 10 PSCache的全局数量限制。当poolPreparedStatements为true时生效。
timeBetweenEvictionRunsMillis 60000 定时检查连接池中空闲连接的间隔时间,单位毫秒,默认1分钟。
minEvictableIdleTimeMillis 300000 连接在池中保持空闲而不被使用的最小时间,超过此时间将被移除,单位毫秒,默认5分钟。
testWhileIdle false 是否在空闲时检查连接有效性,默认false。
testOnBorrow true 是否在获取连接时检查连接有效性,默认true。
testOnReturn false 是否在归还连接时检查连接有效性,默认false。
validationQuery null 测试连接是否可用的查询语句,如果设置了该参数,则每次从连接池中获取连接时都会执行该查询语句,以确保连接可用性。
最近更新 搜索 提交