본문 바로가기
MySQL

[SQL] 커넥션 풀 (Connection Pool) ★

by 스응 2023. 5. 10.
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
반응형

'MySQL' 카테고리의 다른 글

[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

댓글