mysql 외래키
-
MySQL - 외래키(Foreign Key)를 써야할까?Spring Boot/DB 2024. 8. 14. 01:46
배경첫회사에서는 외래키가 DB의 성능 저하, 확장을 어렵게 만들고, 유연성을 잃게 만든다고 배웠다.이직한 회사에서는 외래키가 제공하는 정합성, 무결성 유지 편익이 외래키가 없는 것 보다 크다고 배웠다.외래키 없이 1년, 외래키 사용하며 1년을 보내며 느낀점을 남겨본다.외래키를 쓰지 않는 이유 관계형 DB에 관계가 단순할때는 문제가 없지만, 복잡한 관계를 맺으면 문제가 생긴다. 기본적으로 FK는 인덱스이다. UPDATE, DELETET시 외래키로 인해 성능 저하가 생긴다.부모테이블, 자식테이블 모두 해당 컬럼 인덱스 생성이 필요하고, 변경 시 부모/자식 테이블 데이터 체크 과정이 필요하여 잠금이 발생한다.데드락의 원인이 된다. (참고 : https://martin-son.github.io/Martin-IT..