Skip to content

5.3. HikariCPコネクションプール

5.3.1. 概要

Spring BootはHikariCPをデフォルトのコネクションプールとして使用します。別途の依存関係追加なしにspring-boot-starter-jooqに含まれています。

5.3.2. 主要パラメータ

パラメータデフォルト値推奨値説明
maximum-pool-size10環境別に調整最大コネクション数
minimum-idle10maximum-pool-sizeと同一最小アイドルコネクション数
connection-timeout3000030000(30秒)コネクション取得待機時間(ms)
idle-timeout600000600000(10分)アイドルコネクション維持時間(ms)
max-lifetime18000001800000(30分)コネクション最大寿命(ms)
leak-detection-threshold060000(1分)コネクションリーク検知閾値(ms)

5.3.3. 環境別pool-sizeガイド

環境maximum-pool-size根拠
local5開発マシンの負荷最小化
dev10デフォルト値
staging15プロダクション類似環境
prod20〜30トラフィック規模に応じて調整

算定公式

HikariCP公式推奨公式:pool_size = (core_count * 2) + effective_spindle_count

ほとんどの場合10〜20の間が適切です。過度なコネクション数はむしろ性能を低下させます。

5.4. プロファイル別データソース設定

5.4.1. 共通設定(application.yml)

yaml
spring:
  datasource:
    hikari:
      connection-timeout: 30000
      idle-timeout: 600000
      max-lifetime: 1800000
      leak-detection-threshold: 60000

5.4.2. ローカル環境(application-local.yml)

yaml
spring:
  datasource:
    url: jdbc:postgresql://localhost:5432/flowin
    username: flowin
    password: flowin1234
    hikari:
      maximum-pool-size: 5

5.4.3. 開発環境(application-dev.yml)

yaml
spring:
  datasource:
    url: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}
    hikari:
      maximum-pool-size: 10

5.4.4. プロダクション環境(application-prod.yml)

yaml
spring:
  datasource:
    url: jdbc:postgresql://${DB_HOST}:${DB_PORT}/${DB_NAME}
    username: ${DB_USERNAME}
    password: ${DB_PASSWORD}
    hikari:
      maximum-pool-size: 20
      minimum-idle: 20

必須

開発/ステージング/プロダクション環境のデータベース接続情報は必ず環境変数で注入します。application.ymlに直接記入しません。

TIENIPIA QUALIFIED STANDARD