반응형
MySQL에서 외부 키 제약 조건을 사용하는 이유
그냥 궁금해서
추가하는 타입을 규정할 수 있다고 확신하는데 MySQL에서 외부 키로 제약을 사용하는 동기는 무엇입니까?
퍼포먼스가 향상됩니까?
외부 키는 참조 무결성을 적용합니다.이러한 제약에 의해 테이블 내의 행이order_details
밭과 함께order_id
참조orders
테이블은 절대 가질 수 없다.order_id
에 존재하지 않는 값orders
테이블.
외부 키는 관계형 데이터베이스가 작동해야 하는 것은 아니지만(사실 MySQL의 기본 스토리지 엔진은 FK를 지원하지 않음), 관계가 끊기고 행이 분리되는 것(참조 무결성)을 방지하기 위해 반드시 필요합니다.ACID 내의 C를 유지하려면 데이터베이스 수준에서 참조 무결성을 강제하는 기능이 필요합니다.
퍼포먼스에 대한 우려는 일반적으로 퍼포먼스 비용이 발생하지만 아마 무시할 수 있을 것입니다.외부 키 제약 조건을 모두 넣고, 다른 방법으로는 해결할 수 없는 실제 성능 문제가 있는 경우에만 키 제약 없이 실험해 볼 것을 권장합니다.
한 가지 이유는 외부 키 제약이 있는 테이블 세트를 여러 데이터베이스에 샤딩할 수 없기 때문입니다.
언급URL : https://stackoverflow.com/questions/3433975/why-use-foreign-key-constraints-in-mysql
반응형
'programing' 카테고리의 다른 글
메서드 매개 변수 이름을 가져오는 방법 (0) | 2022.10.02 |
---|---|
MySQL의 여러 업데이트 (0) | 2022.10.02 |
VueJS-컴포넌트 재렌더 구현에 도움이 필요함 (0) | 2022.10.02 |
여러 MySQL 행을 하나의 필드에 연결할 수 있습니까? (0) | 2022.10.02 |
임의의 베이스에서 정수를 문자열로 변환하려면 어떻게 해야 합니까? (0) | 2022.10.02 |