2011-03-10 2 views
2

두 테이블 a와 b가 있고 열 사이에 m : n 관계를 만들려고합니다.
자연스럽게, 나는 a_id와 b_id 컬럼을 가진 세 번째 테이블 ab를 생성한다.m : n- 관계에 대해 MySQL과 함께 사용해야하는 인덱스는 무엇입니까?

모든 쌍이 고유해야하므로 두 필드 모두에 대해 기본 색인을 만들고 각 필드에 대해 하나의 btree-index를 만듭니다. 이제 필드가 2 개인 테이블에 3 개의 인덱스가 있으며 과도하다고 생각합니다. 두 컬럼 모두에 대한 인덱스가 실제로 필요합니까? 아니면 MySQL이 이와 같은 특별한 경우를 처리합니까?

답변

3

기본 색인이 (a_id, b_id)는 a_id 검색 만 포함하므로 a_id를 별도로 색인 할 필요가 없습니다.

+0

출처/인용? – tstenner

+0

@tstenner : 나의 광대 한 년간의 경험 외에도? :-) 참고 : [Multiple-Column Indexes] (http://dev.mysql.com/doc/refman/5.0/en/multiple-column-indexes.html) –

+0

불쾌감은 없지만 나는 방대한 해를 가진 사람들을 알고있다. 자신의 주장에 대한 근거가 더 이상 유효하지 않더라도 기술적 결정에서 1999 년 지식을 사용하는 경험. 그러나 링크 덕분에 필요한 모든 것을 설명합니다. – tstenner

관련 문제