REPEATABLE READ

REPEATABLE READ는 스냅샷 읽기와 현재 행 접근을 분리한다

일반 SELECT는 기준 시점을 유지하지만, UPDATE와 SELECT FOR UPDATE는 현재 행과 잠금 규칙을 따른다.

Snapshot lane
첫 SELECT

트랜잭션 기준 스냅샷을 생성

다시 SELECT

다른 커밋 후에도 같은 행 값을 봄

Current-row lane
UPDATE/DELETE

현재 행과 충돌 여부를 확인

SELECT FOR UPDATE

읽기가 아니라 잠금 읽기로 전환

주의: 일반 읽기와 locking read를 섞으면 같은 트랜잭션 안에서도 기준 시점이 달라진다.