InnoDB RR

InnoDB는 인덱스 record와 gap을 함께 잠가 팬텀을 줄인다

consistent read는 같은 ReadView를 보고, 수정 전제의 범위 읽기는 gap/next-key lock으로 새 행 진입을 제한한다.

gap 10 next-key lock 20 gap 30
WHERE score BETWEEN 10 AND 20 FOR UPDATE

인덱스 record와 사이 gap을 함께 보호해 조건 안으로 새 행이 들어오는 것을 막는다.

consistent read

ReadView

일반 SELECT는 같은 스냅샷을 본다.

체감 팬텀 감소

동일 조건 SELECT 결과가 유지되는 것처럼 보인다.

locking read

FOR UPDATE

현재 행과 인덱스 범위를 잠근다.

조건/인덱스

인덱스가 없거나 조건이 넓으면 잠금 범위가 커진다.