5.3. HikariCPコネクションプール
5.3.1. 概要
Spring BootはHikariCPをデフォルトのコネクションプールとして使用します。別途の依存関係追加なしにspring-boot-starter-jooqに含まれています。
5.3.2. 主要パラメータ
| パラメータ | デフォルト値 | 推奨値 | 説明 |
|---|---|---|---|
maximum-pool-size | 10 | 環境別に調整 | 最大コネクション数 |
minimum-idle | 10 | maximum-pool-sizeと同一 | 最小アイドルコネクション数 |
connection-timeout | 30000 | 30000(30秒) | コネクション取得待機時間(ms) |
idle-timeout | 600000 | 600000(10分) | アイドルコネクション維持時間(ms) |
max-lifetime | 1800000 | 1800000(30分) | コネクション最大寿命(ms) |
leak-detection-threshold | 0 | 60000(1分) | コネクションリーク検知閾値(ms) |
5.3.3. 環境別pool-sizeガイド
| 環境 | maximum-pool-size | 根拠 |
|---|---|---|
| local | 5 | 開発マシンの負荷最小化 |
| dev | 10 | デフォルト値 |
| staging | 15 | プロダクション類似環境 |
| prod | 20〜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: 600005.4.2. ローカル環境(application-local.yml)
yaml
spring:
datasource:
url: jdbc:postgresql://localhost:5432/flowin
username: flowin
password: flowin1234
hikari:
maximum-pool-size: 55.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: 105.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に直接記入しません。