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
'데이터 > 데이터베이스' 카테고리의 다른 글
[Database] Index(인덱스)와 최적화 (0) | 2024.08.02 |
---|---|
[Database] MySQL User 생성 (0) | 2024.07.24 |
[Database] Transaction과 ACID (0) | 2024.07.05 |
[Database] 스토리지 엔진 InnoDB VS MyISAM (0) | 2024.07.04 |
[Database] DB 조회 쿼리 최적화 (0) | 2024.06.26 |