그림 과 글 은 MySQL 의 두 표 와 연 결 된 연결 표 가 어떻게 색인 을 만 드 는 지 상세 하 게 설명 한다.

본 고 는 MySQL 에서 두 표 와 관련 된 연결 표 가 어떻게 색인 을 만 드 는 지 에 관 한 내용 을 소개 하고 참고 학습 을 제공 합 니 다.다음은 상세 한 소 개 를 살 펴 보 겠 습 니 다.
문제 소개
데이터 베 이 스 를 만 드 는 색인 은 단일 색인 을 선택 할 수도 있 고 조합 색인 을 만 드 는 것 도 선택 할 수 있 습 니 다.
다음 과 같은 상황 이 발생 하면 사용자 표(user)와 부서 표(dept)는 부서 사용자 관련 표(deptuser)를 통 해 연 결 됩 니 다.아래 그림 과 같 습 니 다.

표 간 관계
문 제 는 이 관련 표 에 어떻게 색인 을 만들어 야 하 는가 하 는 것 이다.
이 표 에 대해 다음 과 같은 네 가지 선택 이 있 습 니 다.
useruid 단일 색인 만 들 기 idxuser userdept 단일 인덱스 만 들 기 idxdept 조합 색인 idx 구축user_dept,즉(useruuid,dept_uuid) 조합 색인 idx 구축dept_user,즉(deptuuid,user_uuid)
관련 표 에 대한 조 회 는 다음 과 같은 네 가지 상황 이 있다.

--  、        and  
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d,org_user u,org_dept_user duser WHERE u.user_uuid=duser.user_uuid AND d.dept_uuid=duser.dept_uuid AND u.user_code="dev1";
--  、        join  
EXPLAIN SELECT d.dept_name,u.* FROM org_user u LEFT JOIN org_dept_user du ON u.user_uuid=du.user_uuid LEFT JOIN org_dept d ON du.dept_uuid=d.dept_uuid WHERE u.user_code="dev1";
--  、      and  
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d,org_user u,org_dept_user du WHERE u.user_uuid=du.user_uuid AND d.dept_uuid=du.dept_uuid AND d.dept_code="D006";
--  、        join  
EXPLAIN SELECT d.dept_name,u.* FROM org_dept d LEFT JOIN org_dept_user du ON d.dept_uuid=du.dept_uuid LEFT JOIN org_user u ON u.user_uuid=du.user_uuid WHERE d.dept_code="D006";
테스트 검증
1.인원 조사 소속 부서 용 and 방식
1.1 관련 테이블 인덱스 없 음

1.2 단일 인덱스 Idxdept

1.3 단일 인덱스 Idxuser

1.4 조합 색인 Idxdept_user

1.5 조합 색인 Idxuser_dept

1.6 모든 것 이 세 워 진다

2.인원 조사 소속 부서 용 join 방식
2.1 관련 표 인덱스 없 음

2.2 단일 인덱스 Idxdept

2.3 단일 인덱스 Idxuser

2.4 조합 색인 Idxdept_user

2.5 조합 색인 Idxuser_dept

2.6 모든 것

3.부서 조사 인원 용 and 방식
3.1 관련 표 인덱스 없 음

3.2 단일 인덱스 Idxdept

3.3 단일 인덱스 Idxuser

3.4 조합 색인 Idxdept_user

3.5 조합 색인 Idxuser_dept

3.6 모든 것 을 구축한다.

4.부서 조사 소속 인원 은 join 방식 으로
4.1 관련 표 인덱스 없 음

4.2 단일 인덱스 Idxdept

4.3 단일 인덱스 Idxuser

4.4 조합 색인 Idxdept_user

4.5 조합 색인 Idxuser_dept

4.6 모든 것 이 건립 되다

결론.
위의 실제 테스트 결 과 를 통 해 다음 과 같은 결론 을 얻 을 수 있다.이 관련 표 에 대해 각각 useruid 와 deptuid 단일 색인 만 들 기 idxuser,idx_dept 가 가장 좋 습 니 다.
그 중 인덱스 idxuser 는 인원 ID 를 통 해 해당 인원 이 있 는 부 서 를 조회 할 수 있 습 니 다.인덱스 idxdept 적용 및 부 서 를 통 해 해당 부서 의 소속 인원 을 조회 합 니 다.
기타
테스트 데이터
Test.sql
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

좋은 웹페이지 즐겨찾기