눈덩이의 테크블로그
[MySQL] 단일 Connection VS Connection Pool 방식의 차이 본문
- 단일 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을 사용하는 것이 성능 및 확장성 측면에서 더 나을 수 있습니다.
'jsp' 카테고리의 다른 글
connection pool방식의 종류가 있다? (postgeSQL, node.js) (0) | 2023.12.31 |
---|---|
자식창(팝업창)에서 부모창으로 값 전달해주기 (아이디 중복체크 팝업) (0) | 2023.12.06 |
[7_2] tomcat과 mariaDB(mysql)연결하기, jsp(java) form태그 사용법 (action) (0) | 2023.11.01 |