728x90
728x90
커넥션 풀 (Connection Pool)
- 미리 정해진 개수의 데이터베이스 커넥션을 풀(Pool)에 저장해둠
→ 요청이 들어올 때마다 커넥션 풀에서 커넥션을 하나씩 꺼내서 사용함
# 장점
- DB와의 연결을 생성/종료하는 시간/비용 감축
- 불필요한 연결 생성으로 인한 리소스 낭비 감소
- DB 연결을 더욱 효율적으로 관리함
- 성능 향상 (처리 속도 향상)
연결된 프로세스 확인
1 | SHOW FULL PROCESSLIST; | cs |
- id : 프로세스 아이디
- User : 스레드가 접속하고 있는 MySQL 사용자명
- Host : 사용자 IP 주소
- command : 스레드의 현재 상태 (Sleep, Daemon, Query, Lock)
- Time : 프로세스가 현재 커맨드된 상태에서 동작 시간
- State : 사람이 읽을 수 있는 스레드 상태 정보
- info : 현재 실행되는 SQL
# 스레드의 상태
1) Sleep : 사용되지 않는 상태
2) Query : 쿼리문이 실행 중인 상태
3) Daemon
: 시스템 or 네트워크 서비스를 제공하기 위해 항상 실행되는 백그라운드 프로세스
· 사용자가 직접 실행하는 프로그램이 아님
→ 시스템/프로세스에서 자동으로 시작됨
· 운영체제에서 실행되는 것이 일반적임
4) Lock
# 참고
- 다른 문제가 없는데 가끔 작동이 되지 않는 경우가 있음
- SHOW FULL PROCESSLIST;로 확인해서, 만약 Lock 상태가 된 커넥션이 있다면 제거
1 | KILL id; // 해당 프로세스의 id 값 | cs |
320x100
반응형
'SQL' 카테고리의 다른 글
[SQL] DBMS별 문법 차이 (0) | 2023.08.03 |
---|---|
[SQL] 정규화와 역정규화(반정규화) (0) | 2023.06.27 |
[SQL] COMMENT (0) | 2023.04.21 |
[SQL] 쿼리 조건문 (ifnull, nullif, CASE) (4) | 2023.04.20 |
[SQL] 트랜잭션 (Transaction) (0) | 2023.04.19 |