HikariCP連接池簡介與yaml配置


HikariCP連接池是高性能的JDBC連接池,官網標注的三大特點:快速、簡單、可靠,性能優於其他連接池。

官網詳細地說明了HikariCP所做的一些優化,總結如下:

  • 字節碼精簡:優化代碼,直到編譯后的字節碼最少(展平繼承層次結構,掩飾成員變量,消除強制類型轉換),這樣,CPU緩存可以加載更多的程序代碼;
  • 優化代理和攔截器:減少代碼,例如HikariCP的Statement proxy只有100行代碼,只有BoneCP的十分之一;
  • 自定義數組類型(FastStatementList)代替ArrayList:避免每次get()調用都要進行range check,避免調用remove()時的從頭到尾的掃描;
  • 自定義無鎖集合類型(ConcurrentBag):提高並發讀寫的效率;

HikariCP的使用

由於SpringBoot2默認集成HikariCP,因此需要再引入依賴。主要是項目mysql和springboot mybatis的依賴。

Yaml配置

# 配置數據源信息
spring:
  datasource:                                           # 數據源的相關配置
    type: com.zaxxer.hikari.HikariDataSource          # 數據源類型:HikariCP
    driver-class-name: com.mysql.jdbc.Driver          # mysql驅動
    url: jdbc:mysql://localhost:3306/foodie-dev?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true
    username: root
    password: 123456
    hikari:
      connection-timeout: 30000        # 等待連接池分配連接的最大時長(毫秒),超過這個時長還沒可用的連接則發生SQLException, 默認:30秒
      minimum-idle: 5                  # 最小連接數
      maximum-pool-size: 20            # 最大連接數
      auto-commit: true                # 事務自動提交
      idle-timeout: 600000             # 連接超時的最大時長(毫秒),超時則被釋放(retired),默認:10分鍾
      pool-name: DateSourceHikariCP     # 連接池名字
      max-lifetime: 1800000             # 連接的生命時長(毫秒),超時而且沒被使用則被釋放(retired),默認:30分鍾 1800000ms
      connection-test-query: SELECT 1  # 連接測試語句

參考資料


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM