最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Spring Boot 默認(rèn)數(shù)據(jù)庫連接池 HikariCP全文解析

 更新時(shí)間:2026年01月06日 11:18:13   作者:Knight_AL  
HikariCP是SpringBoot默認(rèn)的高性能數(shù)據(jù)庫連接池,通過合理配置可以顯著提升系統(tǒng)性能,文章詳細(xì)介紹了HikariCP的核心參數(shù)及最佳實(shí)踐,,文章列舉了常見的錯(cuò)誤配置及其可能導(dǎo)致的問題,并推薦了適用于大多數(shù)中小型SpringBoot項(xiàng)目的穩(wěn)定生產(chǎn)配置,感興趣的朋友跟隨小編一起看看吧

在 Spring Boot 2.x / 3.x 項(xiàng)目中,HikariCP 已經(jīng)成為默認(rèn)數(shù)據(jù)庫連接池。
但很多人對它的參數(shù)一知半解,甚至直接照抄配置,結(jié)果線上問題頻發(fā)。

一、為什么要用數(shù)據(jù)庫連接池?

每次訪問數(shù)據(jù)庫,如果都經(jīng)歷:

  1. 創(chuàng)建 TCP 連接
  2. MySQL 身份驗(yàn)證
  3. 執(zhí)行 SQL
  4. 關(guān)閉連接

這些操作非常耗時(shí),在并發(fā)場景下會嚴(yán)重拖慢系統(tǒng)性能。

?? 數(shù)據(jù)庫連接池的作用就是:

  • 預(yù)先創(chuàng)建好一定數(shù)量的數(shù)據(jù)庫連接
  • 請求來了直接復(fù)用
  • 用完放回池中
  • 避免頻繁創(chuàng)建 / 銷毀連接

二、什么是 HikariCP?

HikariCP 是一個(gè)高性能 JDBC 連接池實(shí)現(xiàn),也是:

  • ? Spring Boot 官方默認(rèn)連接池
  • ? 目前主流連接池中性能最優(yōu)
  • ? 設(shè)計(jì)目標(biāo):快、輕量、簡單

Spring Boot 3.x 中,哪怕你什么都不配置,底層默認(rèn)用的就是它。

三、典型 Hikari 配置示例

spring:
  datasource:
    hikari:
      connection-test-query: SELECT 1
      connection-timeout: 60000
      idle-timeout: 500000
      max-lifetime: 540000
      maximum-pool-size: 10
      minimum-idle: 5
      pool-name: AiReportHikariPool

下面我們逐個(gè)參數(shù)拆開講

四、Hikari 核心參數(shù)詳解

1?? connection-test-query

connection-test-query: SELECT 1

作用:

  • 用于檢測數(shù)據(jù)庫連接是否可用

是否必須?

  • ? 大多數(shù)情況下不需要
  • Hikari 默認(rèn)使用 JDBC4 的 isValid() 方法,性能更好

建議:

# MySQL / PostgreSQL 可直接刪除
# connection-test-query: SELECT 1

2?? connection-timeout(非常重要)

connection-timeout: 60000

作用:

  • 從連接池獲取連接時(shí),最多等待多久
  • 超過時(shí)間直接拋異常

風(fēng)險(xiǎn):

  • 時(shí)間過長(60 秒)會導(dǎo)致線程長時(shí)間阻塞
  • 在高并發(fā)下可能拖垮整個(gè)服務(wù)

推薦值:

connection-timeout: 30000

3?? idle-timeout

idle-timeout: 500000

作用:

  • 空閑連接在池中能存活的最長時(shí)間
  • 超時(shí)后會被回收

建議:

idle-timeout: 300000  # 5 分鐘

4?? max-lifetime(非常重要)

max-lifetime: 540000

作用:

  • 一個(gè)連接在池中的最大生命周期
  • 到期后強(qiáng)制銷毀并重建

為什么需要?

  • 防止數(shù)據(jù)庫(如 MySQL)主動斷開“老連接”

重要規(guī)則:

max-lifetime > idle-timeout

推薦值:

max-lifetime: 1800000  # 30 分鐘

5?? maximum-pool-size

maximum-pool-size: 10

作用:

  • 連接池允許的最大連接數(shù)

經(jīng)驗(yàn)值:

場景推薦
單體應(yīng)用10–20
微服務(wù)5–15
高并發(fā)需壓測

? 并不是越大越好,數(shù)據(jù)庫本身也有連接上限

6?? minimum-idle

minimum-idle: 5

作用:

  • 保持的最小空閑連接數(shù)

建議:

  • 一般設(shè)置為 maximum-pool-size 的一半左右
  • 不要和最大連接數(shù)相同,否則連接永不釋放

7?? pool-name

pool-name: AiReportHikariPool

作用:

  • 連接池名稱
  • 僅用于日志和監(jiān)控識別

建議:

  • 給每個(gè)服務(wù)一個(gè)有意義的名字,方便排查問題

五、常見錯(cuò)誤配置總結(jié)

? 連接生命周期太短
? connection-timeout 設(shè)太大
? max-lifetime 小于 idle-timeout
? 盲目把 pool-size 調(diào)很大

這些都會導(dǎo)致:

  • 連接頻繁重建
  • 吞吐下降
  • 數(shù)據(jù)庫壓力異常

六、推薦的「穩(wěn)定生產(chǎn)配置」

spring:
  datasource:
    hikari:
      connection-timeout: 30000
      idle-timeout: 300000
      max-lifetime: 1800000
      maximum-pool-size: 10
      minimum-idle: 5
      pool-name: AiReportHikariPool

?? 適合 90% 中小型 Spring Boot 項(xiàng)目

七、總結(jié)

HikariCP 的核心思想不是“多”和“復(fù)雜”,
而是“剛剛好”和“足夠快”。

到此這篇關(guān)于Spring Boot 默認(rèn)數(shù)據(jù)庫連接池 HikariCP全文解析的文章就介紹到這了,更多相關(guān)springboot數(shù)據(jù)庫連接池 HikariCP內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Maven導(dǎo)入依賴時(shí)報(bào)錯(cuò)如何解決

    Maven導(dǎo)入依賴時(shí)報(bào)錯(cuò)如何解決

    這篇文章主要介紹了Maven導(dǎo)入依賴時(shí)報(bào)錯(cuò)如何解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java中處理日期時(shí)間的幾種操作技巧

    Java中處理日期時(shí)間的幾種操作技巧

    日期和時(shí)間是幾乎所有應(yīng)用程序中都會遇到的問題,從簡單的顯示當(dāng)前時(shí)間,到復(fù)雜的日期計(jì)算和時(shí)區(qū)處理,日期時(shí)間操作是開發(fā)中不可避免的一部分,Java提供了不同的工具來幫助我們處理日期和時(shí)間,本文為大家詳細(xì)說說,需要的朋友可以參考下
    2026-01-01
  • Java獲取七牛云存儲空間中圖片外鏈

    Java獲取七牛云存儲空間中圖片外鏈

    本文主要介紹了Java獲取七牛云存儲空間中圖片外鏈,需要獲取在七牛云中存儲的所有圖片,并返回外鏈地址,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-10-10
  • Java中JFrame實(shí)現(xiàn)無邊框無標(biāo)題方法

    Java中JFrame實(shí)現(xiàn)無邊框無標(biāo)題方法

    這篇文章主要介紹了Java中JFrame實(shí)現(xiàn)無邊框無標(biāo)題方法,本文直接給出代碼實(shí)例,需要的朋友可以參考下
    2015-05-05
  • SpringBoot中的Logging詳解

    SpringBoot中的Logging詳解

    這篇文章主要介紹了SpringBoot中的Logging詳解,log配置可能是被忽視的一個(gè)環(huán)節(jié),一般的項(xiàng)目中日志配置好了基本上很少去改動,我們常規(guī)操作是log.info來記錄日志內(nèi)容,很少會有人注意到springBoot中日志的配置,需要的朋友可以參考下
    2023-09-09
  • Java按值傳遞和按址傳遞(面試常見)

    Java按值傳遞和按址傳遞(面試常見)

    這篇文章主要介紹了Java按值傳遞和按址傳遞(面試常見)知識,在面試筆試題中經(jīng)常會遇到,今天小編給大家詳細(xì)介紹下,需要的朋友可以參考下
    2017-02-02
  • Spring?Boot?AOP與事務(wù)、異常處理交互的問題小結(jié)

    Spring?Boot?AOP與事務(wù)、異常處理交互的問題小結(jié)

    文章介紹了Spring?Boot中AOP與事務(wù)、異常處理的交互,包括@Transactional注解的處理機(jī)制、事務(wù)與AOP的結(jié)合、切面執(zhí)行順序以及異常通知與事務(wù)的交互,通過示例和流程圖,詳細(xì)說明了在多切面環(huán)境下,通知的執(zhí)行順序及其實(shí)現(xiàn)原理,感興趣的朋友跟隨小編一起看看吧
    2025-12-12
  • 如何使用兩個(gè)棧實(shí)現(xiàn)隊(duì)列Java

    如何使用兩個(gè)棧實(shí)現(xiàn)隊(duì)列Java

    這篇文章主要介紹了如何使用兩個(gè)棧實(shí)現(xiàn)隊(duì)列Java,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • 基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能

    基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能

    這篇文章主要為大家詳細(xì)介紹了基于Springboot實(shí)現(xiàn)定時(shí)發(fā)送郵件功能的相關(guān)知識,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 新手也能看懂的SpringBoot異步編程指南(簡單易懂)

    新手也能看懂的SpringBoot異步編程指南(簡單易懂)

    這篇文章主要介紹了新手也能看懂的SpringBoot異步編程指南(簡單易懂),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10

最新評論

繁昌县| 甘南县| 昌邑市| 丰城市| 锦屏县| 夹江县| 镇赉县| 小金县| 孝昌县| 墨江| 砚山县| 怀宁县| 新乐市| 祁阳县| 文水县| 孝感市| 蒲城县| 招远市| 临泽县| 平定县| 荣昌县| 巍山| 汝州市| 墨竹工卡县| 静海县| 湖北省| 资源县| 江达县| 涿州市| 驻马店市| 日土县| 五台县| 绥化市| 威海市| 鄢陵县| 大渡口区| 开远市| 甘谷县| 辛集市| 灵武市| 舟曲县|