2011-01-25 4 views
2

저는 최근에 MySQL에 대한 인덱스를 읽었으며 몇 가지 원칙은 매우 간단합니다. 그러나 한 개념은 여전히 ​​나를 괴롭 히고 있습니다. 기본적으로 가상 테이블에서 10 개의 컬럼을 사용하면MySQL 인덱스 질문

SELECT * FROM table WHERE column01 = 'aaa' AND column02 = 'bbb'

: 두 개의 단일 열 (각각 column01 및 column02에 대한) 인덱스 플러스 기본 키 열 (다른 열), 그들은이 하나되지 같은 간단한 SELECT 쿼리에 사용되는거야

첫 번째 본능은 첫 번째 조건이 첫 번째 조건을 만족시키는 행 집합 (또는 InnoDB의 기본 키, 내가 올바른 아이디어를 얻었다면 기본 집합)을 검색한다는 것이고 두 번째 인덱스는 wil 다른 세트가있어. 그리고 최종 결과 집합은이 둘의 교차점 일뿐입니다. 내가 겪어 온 책들에서 나는이 특별한 시나리오에 관해서 아무 것도 찾을 수 없다. 물론,이 특정 쿼리의 경우 두 열에 대한 하나의 인덱스가 가장 좋은 옵션처럼 보입니다.하지만 위에서 설명한 두 개의 인덱스를 사용하려고하면이 모든 것을 배후에서 실제 프로세스를 이해하는 데 어려움을 겪고 있습니다.

답변

1

단일 색인 만 사용합니다. 테스트중인 각 열의 인덱스를 만들려면 여러 열의 복합 인덱스를 만들어야합니다. manual을 읽고 MySQL이 각 인덱스 유형을 사용하는 방법과 최적의 활용도를 얻기 위해 복합 인덱스를 올바르게 정렬하는 방법을 알아보십시오.

+0

감사합니다! – parrker9