[轉帖]HikariCP連線池引數解釋

济南小老虎發表於2024-06-20
https://www.cnblogs.com/wat1r/p/13710562.html

## 資料庫配置
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql://localhost:3306/ssm?useUnicode=true&characterEncoding=utf-8&useSSL=false
spring.datasource.username = root
spring.datasource.password = root
##  Hikari 連線池配置 ------ 詳細配置請訪問:https://github.com/brettwooldridge/HikariCP
## 最小空閒連線數量
spring.datasource.hikari.minimum-idle=5
## 空閒連線存活最大時間,預設600000(10分鐘)
spring.datasource.hikari.idle-timeout=180000
## 連線池最大連線數,預設是10
spring.datasource.hikari.maximum-pool-size=10
## 此屬性控制從池返回的連線的預設自動提交行為,預設值:true
spring.datasource.hikari.auto-commit=true
## 連線池名稱
spring.datasource.hikari.pool-name=MyHikariCP
## 此屬性控制池中連線的最長生命週期,值0表示無限生命週期,預設1800000即30分鐘
spring.datasource.hikari.max-lifetime=1800000
## 資料庫連線超時時間,預設30秒,即30000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.connection-test-query=SELECT 1
spring.datasource.hikari.pool-name=hikariXXXXDbPool
name描述構造器預設值預設配置validate之後的值validate重置
autoCommit 自動提交從池中返回的連線 true true -
connectionTimeout 等待來自池的連線的最大毫秒數 SECONDS.toMillis(30) = 30000 30000 如果小於250毫秒,則被重置回30秒
idleTimeout 連線允許在池中閒置的最長時間 MINUTES.toMillis(10) = 600000 600000 如果idleTimeout+1秒>maxLifetime 且 maxLifetime>0,則會被重置為0(代表永遠不會退出);如果idleTimeout!=0且小於10秒,則會被重置為10秒
maxLifetime 池中連線最長生命週期 MINUTES.toMillis(30) = 1800000 1800000 如果不等於0且小於30秒則會被重置回30分鐘
connectionTestQuery 如果您的驅動程式支援JDBC4,我們強烈建議您不要設定此屬性 null null -
minimumIdle 池中維護的最小空閒連線數 -1 10 minIdle<0或者minIdle>maxPoolSize,則被重置為maxPoolSize
maximumPoolSize 池中最大連線數,包括閒置和使用中的連線 -1 10 如果maxPoolSize小於1,則會被重置。當minIdle<=0被重置為DEFAULT_POOL_SIZE則為10;如果minIdle>0則重置為minIdle的值
metricRegistry 該屬性允許您指定一個 Codahale / Dropwizard MetricRegistry 的例項,供池使用以記錄各種指標 null null -
healthCheckRegistry 該屬性允許您指定池使用的Codahale / Dropwizard HealthCheckRegistry的例項來報告當前健康資訊 null null -
poolName 連線池的使用者定義名稱,主要出現在日誌記錄和JMX管理控制檯中以識別池和池配置 null HikariPool-1 -
initializationFailTimeout 如果池無法成功初始化連線,則此屬性控制池是否將 fail fast 1 1 -
isolateInternalQueries 是否在其自己的事務中隔離內部池查詢,例如連線活動測試 false false -
allowPoolSuspension 控制池是否可以透過JMX暫停和恢復 false false -
readOnly 從池中獲取的連線是否預設處於只讀模式 false false -
registerMbeans 是否註冊JMX管理Bean(MBeans false false -
catalog 為支援 catalog 概念的資料庫設定預設 catalog driver default null -
connectionInitSql 該屬性設定一個SQL語句,在將每個新連線建立後,將其新增到池中之前執行該語句。 null null -
driverClassName HikariCP將嘗試透過僅基於jdbcUrl的DriverManager解析驅動程式,但對於一些較舊的驅動程式,還必須指定driverClassName null null -
transactionIsolation 控制從池返回的連線的預設事務隔離級別 null null -
validationTimeout 連線將被測試活動的最大時間量 SECONDS.toMillis(5) = 5000 5000 如果小於250毫秒,則會被重置回5秒
leakDetectionThreshold 記錄訊息之前連線可能離開池的時間量,表示可能的連線洩漏 0 0 如果大於0且不是單元測試,則進一步判斷:(leakDetectionThreshold < SECONDS.toMillis(2) or (leakDetectionThreshold > maxLifetime && maxLifetime > 0),會被重置為0 . 即如果要生效則必須>0,而且不能小於2秒,而且當maxLifetime > 0時不能大於maxLifetime
dataSource 這個屬性允許你直接設定資料來源的例項被池包裝,而不是讓HikariCP透過反射來構造它 null null -
schema 該屬性為支援模式概念的資料庫設定預設模式 driver default null -
threadFactory 此屬性允許您設定將用於建立池使用的所有執行緒的java.util.concurrent.ThreadFactory的例項。 null null -
scheduledExecutor 此屬性允許您設定將用於各種內部計劃任務的java.util.concurrent.ScheduledExecutorService例項 null null -

Reference

  • https://github.com/brettwooldridge/HikariCP

  • https://blog.csdn.net/long690276759/article/details/82259550

  • https://www.cnblogs.com/yangzhilong/p/11726188.html

相關文章