Locking Read에서 팬텀리드를 막기 위해 사용하는 것이 Next key lock구조다.
이는 Row Lock과 Gap Lock을 조합한 것이다. 여기서 말하는 Gap이라는 것은 행과 행 사이의 논리적인 공간을 말한다. 행 사이에 물리적으로 공간이 있다는 뜻은 아니다. Gap Lock은 "행 사이"라는 객체가 있다고 가정하고 Lock을 거는 것을 말한다. 이러한 논리적인 행 사이에 Lock을 걸어 그 행 사이에 새로운 행이 삽입되지 않도록 한다. 다시 말해 Gap에 Lock을 걸면 Insert는 블록 된다.
'MySQL' 카테고리의 다른 글
Innodb lock monitor (0) | 2021.07.12 |
---|---|
페이지 통합과 분할 (0) | 2021.07.12 |
Lock mechanism in MySQL Internal (0) | 2021.07.05 |
MySQL8 bufferpool (버퍼풀) (0) | 2021.06.29 |
How to confirm the usage of change buffer (체인지 버퍼 사용량 확인방법) (0) | 2021.06.29 |