그림 과 글 은 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
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
MySQL에서 JSON 인덱싱 - aarondfrancis사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 말하지만 완전히 정확하지는 않습니다. MySQL로 JSON 열을 인덱싱하는 것은 완전히 가능합니다! 사람들은 종종 MySQL로 JSON을 인덱싱할 수 없다고 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.