2010-08-21 3 views
0

InnoDB를 사용하고 있습니다. 내 인덱스 선택도 (카디널리티/전체 행)는 < 100 %, 대략 96-98 %입니다.InnoDB에서 색인의 일부가 아닌 열은 정렬 된 순서로 저장됩니까?

  • 키의 일부가 아닌 열도 정렬 된 순서로 저장되는지 알고 싶습니다. 이것은 내 책상의 디자인에 영향을 미친다.

  • 또한 인덱스 선택도가 < 100 % 일 때 조회에서 성능 저하가 얼마나되는지 이해하는 데 관심이 있습니다.

이 (이노 것이 인덱스를 클러스터 된 언급 만 이후 나는이 질문을 얻고 인덱스 후 저장 TID/RP있다)

답변

1

아니오, 그것은 비의 순서에 대한 문제가되지 않습니다 키 열. 두 번째로

대답은 더 복잡하다 -

기본 및 보조 인덱스의 두 가지 유형이 있습니다 - 당신이 조금 이노을 오해 할 수 있다고 생각하기 때문에 나는 그것을 통해 걸을거야.

기본 키 인덱스는 클러스터링됩니다. 즉, 데이터는 B + 트리의 리프에 저장됩니다. 기본 키를 찾는 것은 하나의 트리 순회이며, 찾고있는 행이 있습니다.

보조 키를 검색하려면 보조 키를 검색하고 일치하는 기본 키 행을 찾은 다음 기본 키를 조사하여 데이터를 가져와야합니다.

기본 (클러스터 된) 인덱스는 항상 1의 선택도를 갖기 때문에 보조 (클러스터되지 않은) 인덱스의 선택성에 대해서만 신경 써야합니다. 보조 인덱스를 선택해야하는 방식은 다양합니다. 행의 너비 대 색인의 너비에 따라 다릅니다. 또한 2 차 키가 1 차 키의 "추종"을 따르지 않으면 임의의 IO가 클러스터 된 인덱스의 각 행을 검색 할 수 있기 때문에 메모리가 맞는지 여부에 따라 다릅니다.

관련 문제