39장. Next-Key Lock을 범위 조건으로 재현한다
InnoDB의 record·gap·next-key lock은 isolation과 index access path에 따라 insert를 막을 수 있다. 같은 SQL도 index 유무와 predicate에 따라 잠금 범위가 달라진다. performance_schema.data_locks, data_lock_waits, processlist와 transaction을 연결해 root blocker를 찾는다.
OrderPulse의 seller/date 범위 update와 새 order insert를 두 session에서 실행한다. plan과 실제 locked index record를 확인하고, 더 좁은 index·짧은 transaction·업무 순서로 해결한다. isolation을 낮추는 것은 전역 응급 처치가 아니라 phantom·업무 invariant 영향까지 검토하는 설계 변경이다.