2012-02-27 3 views
0

내 데이터 모델에 세 개의 항목 (Actor, MovieStudio)을 만들었습니다. 이들 모두는 namerating의 속성을 가지고 있습니다. 한 배우는 여러 영화를 가지고 있고, 한 스튜디오는 여러 스튜디오를 가지고 있으며 한 영화는 여러 배우와 여러 스튜디오를 가질 수 있습니다. 내가 프로젝트를 실행하면, 관계 테이블에 의해 생성 된핵심 데이터에서 복합 기본 키의 필드 순서를 변경하려면 어떻게해야합니까?

다음과

CREATE TABLE Z_1MOVIES (Z_1ACTORS INTEGER, Z_2MOVIES INTEGER, PRIMARY KEY (Z_1ACTORS, Z_2MOVIES)); 
CREATE TABLE Z_2STUDIOS (Z_2MOVIES1 INTEGER, Z_3STUDIOS INTEGER, PRIMARY KEY (Z_2MOVIES1, Z_3STUDIOS)); 

배우를 추출하는 런타임 ([movie actors는])은 더 이상 스튜디오 [movie studios]를 추출하는 것보다, 나는 그것이 순서에 의해 발생해야한다고 생각 관계형 테이블의 복합 기본 키 기본 키를 (Z_2MOVIES, Z_1ACTORS)으로 변경하면 Z_1MOVIES에 성능이 향상됩니다.

그래서 코어 데이터에서 복합 키의 순서를 변경하는 방법은 무엇입니까?

답변

0

테이블 스키마를 변경해야 할 수도 있습니다.

ALTER TABLE `Z_1MOVIES` DROP PRIMARY KEY, ADD PRIMARY KEY (Z_2MOVIES, Z_1ACTORS); 

영화로 배우를 선택하려면 Z_2MOVIES의 색인이 필요합니다. 복합 색인은 왼쪽 부분으로 부분적으로 사용될 수 있습니다. 이것은 인덱스 (a, b)를 인덱스 (a)로 사용할 수 있지만 인덱스 (b)로 사용할 수 없다는 것을 의미합니다.