gmelon.dev

⌘K

개발 공부/DB 1

개발 공부/DB 왜 서로 다른 값을 INSERT 했는데 데드락이 걸릴까?

최근 서로 다른 트랜잭션에서 겹치지 않는 FK 값을 가진 엔티티들을 동시에 삽입할 때 데드락이 발생한 케이스가 있었다. 분명 범위가 겹치지 않는데 왜 데드락이 걸리는 걸까?1. 결론: 유니크/외래 키 제약조건이 데드락을 유발한다핵심 원인외래 키(Foreign Key)이거나 유니크 제약 조건(Unique Constraint)이 걸려 있다면, 데드락 발생 확률이 비약적으로 높아진다.데드락 발생 메커니즘상황: FK 에는 유니크 제약 조건이 걸려있고 기존 데이터는 10, 20 이 존재한다고 가정. 격리 수준은 REPEATABLE READ.트랜잭션 A (INSERT 12): 유니크 체크를 위해 10~20 사이에 공유 잠금(S-Lock, 갭 락)을 획득트랜잭션 B (INSERT 14): 마찬가지로 10~20 사이에..

2026.02.02
이전
1
다음
더보기
프로필사진

gmelon

백엔드 개발을 공부하고 있습니다.

  • 분류 전체보기 (94)
    • 개발 공부 (31)
      • Java (6)
      • Spring (11)
      • DB (1)
      • 알고리즘 (11)
      • 기타 (2)
    • 프로젝트 (12)
      • [앱] 플랭고 (4)
      • 졸업 프로젝트 (8)
    • 스터디 (0)
      • 자바 (30)
    • 기록 (15)
      • 후기, 회고 (9)
      • SSAFYcial (5)
      • 이것저것 (1)
    • etc. (6)
      • 모각코 (6)

© 2022–2026 gmelon

RSS feed GitHub LinkedIn

티스토리툴바