옵션 설명

# application.properties
# Hikari DBCP Settings

spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.maximum-pool-size=10
spring.datasource.hikari.max-lifetime=1800000
spring.datasource.hikari.pool-name=HikariCP
spring.datasource.hikari.read-only=false
spring.datasource.hikari.connection-test-query=SELECT 1
  1. connectionTimeout (default 30000 = 30s)

    클라이언트가 pool에 connection을 요청하는데 기다리는 최대시간 설정

  2. maximumPoolSize (default 10)

    Pool에서 보관가능한 유휴 상태 및 사용중인 connection의 최대 커넥션 수를 설정한다.

    사용할 수 있는 Connection이 없다면 connectionTimeout 만큼 대기하다가 시간을 초과하면 SQLException 발생

  3. minimumIdle (default maximumPoolSize와 동일)

    connection pool에서 유지 가능한 최소 connection의 수 설정

    최적의 성능과 응답성을 원하면 이 값을 설정하지 않는게 좋다.

  4. idleTimeout (default 600000 = 10m)

    connection pool에서 유휴 상태로 유지시킬 최대 시간을 설정한다.

    이 설정은 minimumIdle이 maximumPoolSize보다 작은 경우에만 사용가능하다.

    pool에 있는 connection이 minumumIdle에 도달할 경우 이후에 반환되는 connection에 대해서 바로 반환하지 않고 idleTimeout 만큼 유휴 상태로 있다가 폐기된다.

  5. maxLifeTime (default 1800000 = 30m)

    connection의 최대 유지 시간 설정

    maxLifeTime이 지나면 사용중인 connection은 바로 폐기되지 않고 작업(트랜잭션)이 완료되면 폐기된다. 하지만 사용중이지 않은 connection은 바로 폐기된다.

    maxLifeTime 설정은 데이터베이스의 wait_timeout 보다 3~5초 정도 짧게 주면 된다.

  6. readOnly (default false)

    pool에서 얻은 connection이 기본적으로 readOnly인지 지정하는 설정

    데이터베이스가 readOnly 속성을 지원한느 경우에만 사용

  7. connectionTestQuery (default none)

    데이터베이스와의 연결이 활성화 되어있는지 확인하기 위해 pool에서 connection을 제공하기 전에 실행되는 쿼리 단, 드라이버가 JDBC4를 지원하는 경우 이 속성은 사용하지 않는 것이 좋다.

이외 옵션은 다음 링크 참고

https://github.com/brettwooldridge/HikariCP