본문 바로가기

개발/백앤드

[MySQL] 레코드 기반의 잠금이란?

  1. 락(Lock)이란?
    • Database의 트랜잭션 처리의 순차성을 보장하기 위한 방법.
  2. 레코드(Record)란?
    • Database의 행 부분. Tuple이 레코드다.
레코드 기반의 잠금 = 데이터의 튜플(인덱스)을 기준으로 Lock을 설정하는 행위.

→ 따라서 레코드 기반의 잠금을 수행한다면, 높은 동시성 처리가 가능하며 안정적이며 성능이 뛰어나다.

 

*만약 TABLEIndex가 정의되지 않았다면?

MySQL :: MySQL 8.0 Reference Manual :: 15.7.1 InnoDB Locking

 

MySQL :: MySQL 8.0 Reference Manual :: 15.7.1 InnoDB Locking

MySQL 8.0 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

 


‘레코드 기반 락’의 장점과 단점.

  • 장점
    • 높은 동시성 처리가 가능하며 안정적이며 성능이 뛰어나다.
  • 단점
    • Lock을 할 Index를 잘못 설정하면 불필요하게 많은 레코드에 락이 걸리게 된다.

*단점 예시

MySQL 트랜잭션과 락 - InnoDB 락, 이렇게 동작한다!

 

MySQL 트랜잭션과 락 - InnoDB 락, 이렇게 동작한다!

트랜잭션과 락(Transaction, Lock) 트랜잭션과 락 트랜잭션 : 논리적인 작업 단위로 전부 처리되거나 처리되지 않는 (commit/rollback) 원자성을 보장하기 위한 기능이다. 락 : 서로 다른 작업에서 같은 자

jeong-pro.tistory.com


 

참고 서적 : RealMySQL

인용 블로그 :  https://jeong-pro.tistory.com/