1. 문제 상황

1.1 Lock Wait Timeout

1.2 문제 상황 뜯어보기

2. 파고 들기 - DB Lock

2.1 Lock 기본 개념

2.2 X-Lock vs S-Lock

2.3 Lock의 범위

3. 결론

3.1 Lock Wait Timeout의 원인

3.2 교훈


추가 QnA with 잼선생

InnoDB에서는 인덱스 기준으로 락을 건다고 하잖아. 그러면 인덱스 리프 노드 하나가 통째로 락을 걸려나? 레코드 하나만 걸 수 있나? 그리고 테이블 페이지에도 락이 걸릴 수 있나? 인덱스를 타고 내려갈 때 타는 노드들은 다 락이 걸리나?

1. 결론: 리프 노드 '통째로'가 아니라 '콕 집어서' 잠급니다.

가장 중요한 결론부터 말씀드리면, InnoDB는 레코드 단위(Row-Level)로 락을 겁니다. * Q: 인덱스 리프 노드(페이지) 하나가 통째로 락이 걸리나?


2. 인덱스를 타고 내려갈 때: Lock vs Latch

질문하신 **"내려갈 때 타는 노드들은 다 락이 걸리나?"**가 핵심입니다. 여기서 **락(Lock)**과 **래치(Latch)**를 구분해야 합니다.