[개발 일기] 2025.05.08 - 레코드 수준의 잠금(row-level locking)

2025. 5. 8. 11:57·개발 일기

💡 개요

 

오늘은 DB의 테이블에 적용되는 레코드 수준의 잠금이 뭔지 정리해 보자.

 

 

 

🛠️ 레코드 수준의 잠금

 

레코드 수준의 잠금은 DB을 공부할 때마다 자주 나오는 용어이다.

 

 

여기서 레코드란 테이블의 한 행 을 의미하며, 레코드 수준의 잠금은 특정 행을 하나의 트랜잭션이 점유(lock)함으로써, 다른 트랜잭션이 해당 행에 접근(읽기 또는 쓰기)하지 못하도록 막는 것을 말한다.

 

 

MySQL에 여러 트랜잭션이 동일한 테이블에 데이터를 삽입할 때 레코드 수준의 잠금 때문에 지연이 발생한다고 알고있다.

 

 

내가 보기엔 그러한 이유는 테이블에는 고유한 인덱스가 부여되기 때문인데, 이를 유지하려면 삽입 시 해당 인덱스에 대한 잠금이 필요하기 때문이다.

 

 

즉, 동시에 여러 트랜잭션이 같은 인덱스를 갱신하려고 하면, 충돌을 방지하기 위해 순차적으로 처리되며 잠금이 발생하게 된다.

 

 

이로 인해 레코드 수준의 잠금이 동작하고, 결과적으로 삽입 속도가 지연될 수 있는 것이다.

'개발 일기' 카테고리의 다른 글

[개발 일기] 2025.05.10 - Bulk을 사용한 저장이 하나씩 저장하는 것 보다 빠른 이유  (0) 2025.05.10
[개발 일기] 2025.05.09 - MIME  (0) 2025.05.09
[개발 일기] 2025.05.07 - WebRTC 구현 방식  (0) 2025.05.07
[개발 일기] 2025.05.06 - WebRTC 연결  (0) 2025.05.06
[개발 일기] 2025.05.05 - 비밀번호 암호화 (Feat : BCryptPasswordEncoder)  (1) 2025.05.05
'개발 일기' 카테고리의 다른 글
  • [개발 일기] 2025.05.10 - Bulk을 사용한 저장이 하나씩 저장하는 것 보다 빠른 이유
  • [개발 일기] 2025.05.09 - MIME
  • [개발 일기] 2025.05.07 - WebRTC 구현 방식
  • [개발 일기] 2025.05.06 - WebRTC 연결
오도형석
오도형석
  • 오도형석
    형석이의 성장일기
    오도형석
  • 전체
    오늘
    어제
    • 분류 전체보기 N
      • MSA 모니터링 서비스
        • DB
      • 스파르타 코딩클럽
        • SQL
        • Spring
      • 백엔드
        • Internet
        • Java
        • DB
      • 캡스톤
        • Django
        • 자연어처리
      • Spring
        • JPA
        • MSA
      • ETC
        • ERROR
      • 개발 일기 N
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 인기 글

  • 태그

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
오도형석
[개발 일기] 2025.05.08 - 레코드 수준의 잠금(row-level locking)
상단으로

티스토리툴바