DB Connection Pool
- 신뢰성을 위해 백엔드 서버와 DB서버는 TCP기반으로 동작하는데, connection을 연결하고 해제할 때 시간적인 비용이 많이 발생하게 됨
- 이를 방지하기 위해 미리 TCP 연결을 여러개 만들어 놓고, 사용하지 않은 connection pool을 사용해 DB 쿼리를 처리하는 방식을 DB Connection pool 이라고 함
- API 요청이 있을 떄에는 사용하지 않는 connection pool을 사용하고, 요청이 종료될 때는 연결 해제 없이 connection pool을 사용해 쿼리의 속도를 증가시킬 수 있게 됨
- mysql에서는 다음과 같은 파라미터를 설정 가능
- max_connections: 최대로 사용가능한 connection 수
- wait_timeout: connection이 비활성화될때 얼마만큼 기다리고 connection을 닫을 것인지를 설정하는 변수
- spring의 HikariCP에서는 다음과 같은 파라미터를 설정 가능
- minimumIdle: pool에서 유지하는 최소한의 idle connection 수
- maximumPoolSize: pool이 가질 수 있는 최대 connection 수
- maxLifetime: pool에서의 connection의 최대 수명
- connectionTimeout:pool에서 connection을 받기 위한 대기시간
출처:
https://www.youtube.com/watch?v=zowzVqx3MQ4&list=PLcXyemr8ZeoREWGhhZi5FZs6cvymjIBVe&index=30&t=3s
글 재미있게 봤습니다.