개발 블로그

[Database] DB Session & Connection 본문

데이터/데이터베이스

[Database] DB Session & Connection

갹둥 2024. 7. 24. 01:21

DB Session vs Connection 

두 개념과 차이를 간단하게 정리해보았습니다

 

Connection:

  • 정의: 클라이언트와 데이터베이스 서버 간의 물리적 또는 논리적 연결
  • 역할: 데이터베이스 서버와 통신할 수 있는 통로를 제공
  • 예시: 네트워크 소켓, 데이터베이스 드라이버 인스턴스

 

Session:

  • 정의: 특정 커넥션을 통해 데이터베이스와 상호작용하는 동안 유지되는 상태
  • 역할: 사용자의 인증 정보, 트랜잭션 상태, 설정된 옵션 등을 포함하여 상호작용의 논리적 컨텍스트를 관리
  • 예시: 로그인 정보, 트랜잭션 상태 등

Connection vs Session

  Connection  Session
정의 DB와 Client 간의 물리적 통신 경로 Client가 연결을 통해 서버에서 작업을 수행하는 동안의 상태
기능 데이터 전송 및 명령 실행 상태 정보 유지, 트랜잭션 관리, 세션 변수
시작/종료 Client → Server 접속 시 설정되고 작업 완료 시 종료됨 연결이 활성화된 동안 지속되며, 연결 종료시 세션도 종료
고유ID 물리적 연결에 대한 특정 ID 없음 고유한 세션 ID로 구분됨
  • Connection 안에 Session이 있다고 보면 됨
  • 대체로 Connection:Session = 1:1 관계

 

 

세션 id 확인

로컬 서버에서 MySQL DB에 콘솔을 두 개 띄웠습니다. (그냥 IntelliJ 사용함)

  • query console 하나 열 때 마다 하나의 connection이 생성됨 → 세션이 생성됨
SELECT connection_id();

을 각각 콘솔에 입력하면 서로 다른 세션 ID가 나옵니다

console: 13

console1: 14