Database/mysql
[MySQL] 외래키 쓰면 안되는 이유
hyun_ji
2023. 8. 28. 18:15
반응형
SMALL
외래키(Foreign Key)는 데이터베이스에서 두 테이블 간의 관계를 정의할 때 사용하는 개념 외래키는 한 테이블의 필드(또는 컬럼)가 다른 테이블의 기본 키(Primary Key)를 참조할 때 사용 이렇게 하는 것으로 데이터의 일관성과 무결성이 보장되지만, 몇 가지 단점 또는 고려사항들이 있음
1. 성능 문제 외래키를 사용하면 INSERT, UPDATE, DELETE 작업 시 해당 테이블뿐만 아니라 참조하는 테이블까지 확인해야 함. 이로 인해 작업 속도가 느려질 수 있음.
2. 복잡성 증가 외래키 관계를 설정하면 데이터베이스 구조가 복잡해질 수 있음. 이로 인해 쿼리 작성이나 데이터베이스 관리가 어려워질 수 있음.
3. 삭제 제한 외래키로 참조되는 테이블의 데이터를 삭제하려고 할 때, 그 데이터를 참조하는 다른 테이블의 데이터가 존재하면 삭제가 불가능함. 이를 '캐스캐이드 삭제' 옵션으로 해결할 수 있지만, 잘못된 설정으로 데이터 손실의 위험이 있음.
4. 데이터 추가 제한 참조하는 테이블에 없는 값을 외래키 컬럼에 입력하려고 하면 오류가 발생함. 이는 데이터의 무결성을 위한 것이지만, 때로는 데이터 입력이 제한되는 상황이 발생할 수 있음.
5. 데이터 이관의 어려움 외래키 관계가 설정된 테이블의 데이터를 다른 데이터베이스나 시스템으로 이관할 때 순서와 방법을 신중히 고려해야함.
6. 변경의 어려움 나중에 데이터베이스 구조를 변경하거나 수정할 때, 외래키 때문에 간접적으로 많은 테이블들에 영향을 줄 수 있음.
반응형
LIST