Spring HikariCP DB連接池

爲什麼使用連接池?

  • 數據庫連接池的主要作用是預置一定數量的連接, 放到緩衝池中重複使用, 來減輕每次使用數據庫時創建連接及銷燬連接的性能成本, 由此提升數據庫併發能力

HikariCP簡介

  • HikariCP是 BoneCP線程池的優化版本, 號稱性能最好的, SpringBoot2.X的默認連接池是 HikariCP.

主要特點

  1. 通過 Javassist類庫來動態生成字節碼, 來簡化了字節碼
  2. 使用 FastList替代 ArrayList, 優化了獲取和移除元素的方法, 來提高了存取數據的性能
  3. 使用 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. 

如果您覺得有幫助,歡迎點贊哦 ~ 謝謝!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章