Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

눈덩이의 테크블로그

[MySQL] 단일 Connection VS Connection Pool 방식의 차이 본문

jsp

[MySQL] 단일 Connection VS Connection Pool 방식의 차이

nundung 2023. 12. 29. 19:20

- 단일 Connection

제일 기본적인 커넥션 방법이다. 말 그대로 단일 커넥션으로,
한 번 생성하여 사용한 뒤, end, destory 등으로 삭제하고 재생성됨에 따라
handshake 비용, 프로세스 혹은 스레드 비용이 증가한다는 단점이 존재한다.

 작은 규모의 애플리케이션이나 단일 요청을 처리하는 경우에 적합합니다.

 

- Connection Pool

Connection Pool은 미리 필요한 수 만큼 Connection을 만들어 놓는 개념이다.

 

위의 그림에 따르면 Pool 안에 Connection을 만들어 놓고 사용할 때 꺼내서 쓰고 반환 시, 다시 Pool에 넣어놓는다.

단일 Connetion과는 다르게 Connection을 다시 생성하는 데 연결 시간(비용)이 소비되지 않는 장점이 있어 그 만큼 애플리케이션의 실행 / 검색 속도가 빨라지게 된다.

하지만 Pool 또한 필요량보다 적게 해놓으면 대기시간(Pending)이 발생할 수 있고, 너무 많이 해놓을 경우 메모리 소모가 크다는 단점이 있어 메모리 상황과 사용자 수에 맞게 조절해서 써야한다.

 

데이터베이스에 연결된 Connection을 미리 만들어 둔후 Pool에 보관하였다가 필요할 때 Pool에서 Connection을 가져다 사용한 후, 다시 Pool에 반환하는 기법입니다. Connection Pool을 이용하면 여러 Connection을 이용할 수 있기 때문에 더 큰 부하를 견딜 수 있습니다.

또한 기존처럼 필요할때 마다 Connection을 생성하고 닫지 않아도 되기 때문에 어플리케이션의 성능향상 또한 기대할 수 있습니다.


일반적으로 멀티스레드 환경에서 여러 요청을 처리할 때 유용합니다. 여러 연결을 관리하고 풀에 저장하여 필요할 때마다 재사용하므로 성능상 이점이 있습니다. 특히 웹 애플리케이션 등에서 여러 요청을 처리할 때 유용합니다.


일반적으로 웹 애플리케이션에서는 Pool을 사용하는 것이 성능 및 확장성 측면에서 더 나을 수 있습니다.