[Back-End] 갭락(Gap Lock)과 넥스트키 락(Next-Key Lock)
·
Back-end
매일메일을 통해하루하루 CS 공부하기 앞서 배운 내용에서 MVCC 동시성 제어 방식에서 Gap Lock과 Next-Key Lock을 통해 Phantom Read를 방지할 수 있다고 배웠었다. 그렇다면, 각 Lock과 Phantom Read란 무엇일까? 제대로 파헤쳐보자 Phantom Read란 무엇인가트랜잭션이 동일한 조건의 쿼리를 반복 실행할 때, 나중에 실행된 쿼리에서 처음에는 존재하지 않았던 새로운 행이 나타나는 현상. 읽기 일관성을 유지하는 과정에서 발생할 수 있는 문제로, 데이터의 삽입/삭제가 다른 트랜잭션에 의해 이루어질 때 발생함.-- 트랜잭션 A 시작START TRANSACTION;-- 트랜잭션 A 첫 번째 조회SELECT * FROM orders WHERE amount > 150;-- ..