Woopii Vyeolog

Connection pool 본문

DB,SQL

Connection pool

WooPii 2020. 2. 17. 15:16

예를 들어서 관리자가 성적 조회 어플리케이션을 사용한다고 가정한다.

 

그 과정은 

1. 조회(데이터 취득)

2. 수정 (데이터 갱신)

3. 성적 입력(데이터 등록)

등이 있을 수 있다.

 

일련의 과정을 거치면서 매 작업마다 DB접속이 있어난다.

 

한명이 이러한 작업을 할 경우 별 문제 없지만, 수백, 수천의 사람이 동시에 작업한다면 문제가 생긴다.

 

이러한 문제를 해결하기 위해 나온 기법이 Connection pool 이다.

 

커넥션 풀(Connection pool)이란, DB와 연결할 Connection 객체들을 Pool에 저장해 놓았다가

 

클라이언트 요청이 오면 커넥션을 빌려주고, 볼일이 끝나면 다시 반납받아서, pool에 저장하는 방식이다.

 

DB를 연결할 때, 커넥션 풀을 사용하면, 미리 연결을 맺고 있는 커넥션들이 있기 때문에, 커넥션을 

맺고 끊는 과정이 사라지게 된다. 

따라서, DB접근 시, 불필요한 작업이 사라지므로, 연결시간이 소비되지 않고, 성능 향상을 기대 할 수 있다.

 

Connection pool에 저장되있는 connection 갯수는 한정적이다. connection이 없을 경우, 클라이언트는 대기 상태로

전환이 되고, connection이 반환되면, 대기하고 있는 순서대로 Connection이 제공된다.

 

Connection pool에 저장되있는 connection 갯수는 한정적이다.

동시 접속자가 많을 경우 pool에서 미리 생성 된 connection을 제공하고 없을 경우 사용자는

connection이 반환될 때까지 번호순대로 대기하고, 반환되면 대기 순서대로 Connection이 제공된다.

여기서 WAS에서 커넥션 풀을 크게 설정하면 메모리 소모가 큰 대신 많은 사용자가 대기시간이 줄어들고,

반대로 커넥션 풀을 적게 설정하면 그 만큼 대기시간이 길어진다.

 

 

 

 

 

참고

https://brownbears.tistory.com/289

 

[DB]Connection Pool

Connection Pool이란? 서버는 동시에 사용할 수 있는 사람의 수라는 개념이 존재합니다. 일반적인 Connection Pool을 이용하면 동시 접속자 수를 벗어나게 될 경우 에러(예외)가 발생하게 됩니다. 예외가 발생하면..

brownbears.tistory.com

https://victorydntmd.tistory.com/42

 

[DB] 커넥션 풀 (Connection pool)

1. 커넥션 풀( Connection pool ) 커넥션 풀이란 DB와 미리 connection( 연결 )을 해놓은 객체들을 pool( 웅덩이 )에 저장해두었다가, 클라이언트 요청이 오면 커넥션을 빌려주고, 볼일이 끝나면 다시 커넥션을 반..

victorydntmd.tistory.com

 

'DB,SQL' 카테고리의 다른 글

[SQL] 03. 테이블에서 데이터 검색하기  (0) 2023.07.01
[SQL] 02. 테이블의 구조 - DESC  (0) 2023.07.01
[SQL] 01. SQL 기초  (0) 2023.07.01
[DB] Index란?  (0) 2020.02.24
DB연동을 위한Ubuntu Linux Mysql 설치, 설정  (0) 2020.01.31
Comments