数据库连接池优化配置

1
2
3
4
5
6
7
8
9
10
11
12
spring:
datasource:
hikari:
minimum-idle: 10
maximum-pool-size: 100
idle-timeout: 10000
max-lifetime: 30000
connection-timeout: 30000
login-timeout: 5
validation-timeout: 3000
connection-test-query: SELECT 1
validation-query: SELECT 1

validation-query

validation-query 是一个 SQL 查询语句,用于验证连接是否仍然有效。当连接从连接池中获取并且处于空闲状态时,Hikari 连接池会执行 validation-query 来确保连接仍然有效。如果执行 validation-query 失败或返回的结果不符合预期,连接将被标记为无效并从连接池中移除,然后将会尝试获取一个新的连接来替代。默认情况下,validation-query 被设置为 null,表示不进行连接的验证。

connection-test-query

connection-test-query 是一个可选的 SQL 查询语句,用于在连接被创建时进行测试。当连接池创建新的连接时,会在连接被返回之前执行 connection-test-query。如果执行 connection-test-query 失败或返回的结果不符合预期,连接将被标记为无效并丢弃,然后将会尝试获取一个新的连接来替代。默认情况下,connection-test-query 被设置为 null,表示不进行连接的测试。

总结起来,validation-query 在连接从连接池中获取时进行验证,而 connection-test-query 在连接被创建时进行测试。这两个属性的目的都是确保连接的有效性,并在需要时替换无效的连接。

validation-timeout 毫秒 默认5s

当连接从连接池中获取并且处于空闲状态时,连接池会执行 validation-query 来验证连接的有效性。validation-timeout 指定了执行验证查询的最大等待时间。如果在指定的超时时间内无法完成验证查询,连接将被标记为无效并从连接池中移除,然后将会尝试获取一个新的连接来替代。