안녕하세요 1년차 백엔드 개발자 입니다
옛부처 많이 들어왔던 얘기입니다
FK는 현업에서 사용하지 않는다
그 이유는
1. 무결성 체크로 인한 성능 저하 가능성
2. 스키마 수정 시의 번거로움
3. FK 설정 시 제약조건 관련 테이블들의 S Lock 발생
이라고 이해했습니다
정말 현업에서는 FK를 사용하지 않는지, 사용하지 않는다면 정확히 어떤 이유인지 알고 싶습니다
'추천해요' 버튼을 누르면 좋은 질문이
더 많은 사람에게 노출될 수 있어요.
'보충이 필요해요' 버튼을 누르면 질문자에게
질문 내용 보충을 요청하는 알림이 가요.
김준형 애즈위메이크 백엔드 개발자 님의 질문
답변 1
현업에서 사용합니다.
빈번한 수정( 외래키값과 연계된 테이블 또는 테이블 스키마 )이 발생하는 경우
- 외래키 설정 조건에 의한 불편함 때문에 사용하지 않는 경우도 있습니다.
언급주신 1 2 3 의 이유로 사용하지 않는 경우도 있고
그 이외의 이유들로 사용하는 경우도 있습니다.