이 질문은이 질문에 대한 주석을 읽은 후에 나타납니다.
다 대다 테이블을 생성 할 때 두 개의 외래 키 열에 복합 기본 키를 생성하거나 자동 증가 대리 "ID"기본 키를 생성하고 두 개의 FK 열에 인덱스를 추가해야합니다. 고유 한 제약)? 각 경우에 새 레코드 삽입 / 재 인덱싱 성능에 미치는 영향은 무엇입니까?
기본적으로 이것은 :
PartDevice
----------
PartID (PK/FK)
DeviceID (PK/FK)
대 이것 :
PartDevice
----------
ID (PK/auto-increment)
PartID (FK)
DeviceID (FK)
댓글 작성자는 다음과 같이 말합니다.
두 ID를 PK로 만드는 것은 테이블이 디스크에서 해당 순서로 물리적으로 정렬됨을 의미합니다. 따라서 (Part1 / Device1), (Part1 / Device2), (Part2 / Device3), (Part 1 / Device3)를 삽입하면 데이터베이스는 테이블을 분리하고 항목 2와 3 사이에 마지막 테이블을 삽입해야합니다. 많은 레코드를 추가 할 때마다 수백, 수천 또는 수백만 개의 레코드를 섞는 작업이 포함되므로 매우 문제가됩니다. 반대로 자동 증가 PK를 사용하면 새 레코드를 끝까지 붙일 수 있습니다.
내가 묻는 이유는 항상 대리 자동 증가 열없이 복합 기본 키를 수행하는 경향이 있었지만 대리 키가 실제로 더 성능이 좋은지 확실하지 않기 때문입니다.