Spring hikari Connection Pool
爲什麼使用連接池?
- 數據庫連接池的主要作用是預置一定數量的連接, 放到緩衝池中重複使用, 來減輕每次使用數據庫時創建連接及銷燬連接的性能成本, 由此提升數據庫併發能力
HikariCP簡介
- HikariCP是 BoneCP線程池的優化版本, 號稱性能最好的, SpringBoot2.X的默認連接池是 HikariCP.
主要特點
- 通過 Javassist類庫來動態生成字節碼, 來簡化了字節碼
- 使用 FastList替代 ArrayList, 優化了獲取和移除元素的方法, 來提高了存取數據的性能
- 使用 ConcurrentBag無鎖集合, 來減少了資源競爭, 由此提高了併發性能
常用配置說明
## 指定數據庫驅動包
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
## 指定數據庫, 以及時區, 編碼類型等
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&serverTimezone=PRC&characterEncoding=utf8&useSSL=false
## 數據庫賬號
spring.datasource.username=root
## 數據庫密碼
spring.datasource.password=123456
## 配置類型爲 Hikari數據源
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
## 連接池名字, 默認值是 HikariPool-1
spring.datasource.hikari.pool-name=MyPool
## 最小空閒連接數量
spring.datasource.hikari.minimum-idle=10
## 最大連接數, 默認值是 10
spring.datasource.hikari.maximum-pool-size=10
## 空閒連接存活最大時間, 默認值是 600000(10分鐘), 超過該值會被釋放
spring.datasource.hikari.idle-timeout=600000
## 自動提交從池中返回的連接, 默認值是 true
spring.datasource.hikari.auto-commit=true
## 池中連接的最長生命週期, 0表示無限生命週期, 默認值是 1800000(30分鐘). 應設置比 DB的超時時間短
spring.datasource.hikari.max-lifetime=1800000
## 連接超時時間, 默認值是 30000(30秒)
spring.datasource.hikari.connection-timeout=30000
## 連接測試查詢
spring.datasource.hikari.connection-test-query=SELECT 1
輸出日誌
o.s.j.e.a.AnnotationMBeanExporter:433 - Registering beans for JMX exposure on startup
o.s.j.e.a.AnnotationMBeanExporter:895 - Bean with name 'dataSource' has been autodetected for JMX exposure
o.s.j.e.a.AnnotationMBeanExporter:668 - Located MBean 'dataSource': registering with JMX server as MBean [com.zaxxer.hikari:name=dataSource,type=HikariDataSource]
o.s.c.s.DefaultLifecycleProcessor:356 - Starting beans in phase 2147483647
o.s.s.a.ScheduledAnnotationBeanPostProcessor:276 - No TaskScheduler/ScheduledExecutorService bean found for scheduled processing
o.s.b.w.e.tomcat.TomcatWebServer:206 - Tomcat started on port(s): 8080 (http) with context path ''
com.test.web2.Web2App:59 - Started Web2App in 7.192 seconds (JVM running for 8.937)
o.a.c.c.C.[Tomcat].[localhost].[/]:180 - Initializing Spring FrameworkServlet 'dispatcherServlet'
o.s.web.servlet.DispatcherServlet:497 - FrameworkServlet 'dispatcherServlet': initialization started
o.s.web.servlet.DispatcherServlet:512 - FrameworkServlet 'dispatcherServlet': initialization completed in 29 ms
com.zaxxer.hikari.HikariDataSource:110 - MyPool - Starting...
com.zaxxer.hikari.HikariDataSource:123 - MyPool - Start completed.
如果您覺得有幫助,歡迎點贊哦 ~ 謝謝!!