DBMS Strategy

DBMS별 차이는 “일반 읽기, 잠금 읽기, 범위 보호, 실패 처리”로 본다

격리 수준 이름이 같아도 구현은 다르다. 제품별로 MVCC 스냅샷과 잠금 범위, 충돌 처리 방식을 함께 확인한다.

PostgreSQL

일반 읽기

MVCC 스냅샷

잠금 읽기

FOR UPDATE 계열

범위 보호

SERIALIZABLE SSI

실패 처리

serialization failure 재시도

MySQL InnoDB

일반 읽기

consistent read

잠금 읽기

FOR UPDATE / SHARE

범위 보호

gap, next-key lock

실패 처리

deadlock/timeout 재시도

Oracle / SQL Server

일반 읽기

제품별 MVCC/locking

잠금 읽기

lock hint와 isolation

범위 보호

serializable/key-range lock

실패 처리

NOWAIT, timeout, retry

일반 읽기

스냅샷을 보는가, 현재 잠금을 기다리는가?

잠금 읽기

읽으면서 쓰기 충돌까지 막는가?

범위 보호

새 행 진입까지 막는가?

실패 처리

대기, 실패, 재시도 중 무엇을 선택하는가?