일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 책 정리
- WebHook
- centos7
- AWS
- DISTINCT
- TypeScript
- vagrant
- Hibernate
- db
- Git
- Jenkins
- Client
- github
- EC2
- 프로그래머스
- spring boot
- jdbc
- TLS
- sample
- Java
- mariadb
- spring
- SSL
- 토비의스프링
- Spring Legacy Project
- ssh
- Linux
- window
- 코딩테스트
- docker
- Today
- Total
Woopii Vyeolog
Connection pool 본문
예를 들어서 관리자가 성적 조회 어플리케이션을 사용한다고 가정한다.
그 과정은
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
https://victorydntmd.tistory.com/42
'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 |