TIL

2024.08.06 Intention lock

Gisungcu 2024. 8. 6. 22:18

 

 

MySQL :: MySQL 8.4 Reference Manual :: 17.7.1 InnoDB Locking

MySQL 8.4 Reference Manual  /  ...  /  The InnoDB Storage Engine  /  InnoDB Locking and Transaction Model  /  InnoDB Locking This section describes lock types used by InnoDB. Shared and Exclusive Locks InnoDB implements standard row-level locking w

dev.mysql.com

오늘도 이어서.. Intention lock은 테이블 수준의 lock으로 잠금의도를 나타내는 lock입니다.

Sql에 따라 IS, IX lock으로 나뉘며 각각 S, X lock과의 호환여부가 다릅니다.
존재이유는 더 공부해보겠습니다.

 

Insert intention lock도 있습니다.
Intention lock과 이름은 동일하지만 행위는 좀 다릅니다.

Insert 시 거는 lock으로 일종의 gap lock으로 동작합니다. 

기존 gap lock과 다른 점은 insert 시 gap에 들어가는 것을 막지 않고 동일한 key값으로 들어올 때만 막습니다.

당근 글에서 나와 있듯이 값이 없음으로 인해서 dead lock이 발생할 수 있습니다. Gap lock과 insert intention lock과 호환되지 않기 때문입니다.

 

MySQL Gap Lock 다시보기

우리가 일반적으로 알고 있는 데이터베이스 서버의 잠금(Lock)은 레코드 자체에 대한 잠금(Record Lock)이에요. 어떤 트랜잭션에서 레코드를 변경하기 위해서는 그 레코드를 잠그고, 그 동안은 다른

medium.com