상위 수준의 예고 표시

행을 잠그면 테이블에는 먼저 의도 잠금이 남습니다

그래서 테이블 전체 락 요청은 모든 행을 검사하지 않고, 상위 테이블의 IS·IX 표시만 보고도 충돌 여부를 바로 판단할 수 있습니다.

계층 구조: 실제 락은 행에, 예고 표시는 테이블에

IS 아래 행들 중 어딘가에 공유 락이 있음을 알림
IX 아래 행들 중 어딘가에 배타 락이 있음을 알림
orders 테이블
IX 기록
id = 1 UPDATE 대상 행 X-Lock
id = 2 잠금 없음 -
id = 3 잠금 없음 -
핵심: 행 하나만 X-Lock이어도, 상위 테이블에는 "이 테이블 아래에 쓰기 잠금이 존재함"이라는 IX 표시가 함께 남습니다.

충돌 판단: 테이블은 이 표시만 보고 대기를 결정

주체
요청
테이블이 보는 신호
T1
UPDATE orders ... WHERE id = 1
행에는 X-Lock, 테이블에는 IX가 남음
T2
LOCK TABLE orders IN EXCLUSIVE MODE
IX와 충돌 → 즉시 대기
왜 필요한가 의도 잠금은 하위 행 락의 존재를 상위에서 요약하므로, DBMS가 테이블 전체 락 충돌을 빠르게 검사하고 동시성 판단 비용을 줄일 수 있습니다.