Study

데이터베이스 Connection Pool (MySQL)

승톨이 2023. 10. 12. 15:55

클라이언트 어플리케이션이 데이터베이스와 상호작용하기 위해서는 클라이언트와 데이터베이스를 연결하는 통신채널을 열어야 하는데, 이를 Connection 이라고 한다. Connection을 열고 닫는 과정은 많은 리소스를 사용하는 작업이기 때문에, SQL 요청이 발생할 때마다 새로운 Connection을 연결하는 것은 DB에 많은 부하를 일으킴과 동시에 성능 저하를 가져온다. 

그래서 Java 어플리케이션은 어플리케이션이 로딩되는 시점에 필요한 수 만큼의 Connection을 미리 열어 놓고, 이를 Pool에 저장해 둔 다음 연결 요청이 있을때마다 저장된 연결을 꺼내 사용한다. 이미 열려있는 연결을 대여하여 사용한 후 반납하는 방식이기 때문에 자원을 절약할 수 있고, 어플리케이션 성능을 개선해 준다.