← 질문 목록
#399깊이 0

외래키 제약은 데이터 쓰기 성능에 어떤 부담을 주는가?

데이터베이스

답변 연습

내 답변 적어보기접힘
이 브라우저에 자동 저장 · 0자
모범답안 확인하기내 답변 뒤에 열어보세요

쓰기가 일어날 때마다 참조 테이블의 데이터를 검사하고 잠금을 걸기 때문이다.

  1. 1. 클라이언트에서 자식 테이블로: 데이터 쓰기 요청
  2. 2. 자식 테이블에서 부모 테이블로: PK 존재 확인 및 공유락 획득
  3. 3. 부모 테이블에서 자식 테이블로: 존재 확인 응답
  4. 4. 자식 테이블에서 DB 저장소로: 자식 데이터 저장

부모 테이블의 행이 존재하는지 확인하는 조회가 매번 발생한다. 이 과정에서 부모 행에 공유락이 걸린다.

동시에 여러 트랜잭션이 자식 행을 추가하면 잠금 병목이 커진다. 부모 행을 수정할 때도 자식 테이블을 매번 검사한다.

대량 데이터를 넣을 때 인덱스 탐색과 잠금 대기 비용이 커진다. 무결성을 DB가 보장하는 대신 쓰기 처리량을 잃는다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

외래키 제약은 데이터 쓰기 성능에 어떤 부담을 주는가?