2011-06-12 6 views
5

InnoDB의 기본 키가 클러스터 된 것을 알고있다. 따라서 자동 증분 정수를 기본 키로 사용하면 이미 정렬 된 이점이 있으며 삽입 성능이 향상됩니다.InnoDB가 다중 컬럼 기본 키를 정렬하는 방법

하지만이 문제는 2 열 ID와 해시 (다른 몇 가지 중요하지만 중요하지 않음)가있는 테이블입니다.

id int auto increment 
hash Guid 

해시 열에서이 테이블을 파티션해야하므로 기본 키에 넣어야합니다.

그래서 (id, hash)로 기본 키를 생성하려고합니다. id 열은 다른 테이블과의 조인에 사용됩니다.

내가 (ID, 해시)로 PK를 가지고 있다면, InnoDB가 어떻게 정렬합니까?

id 열을 먼저 사용하고 해시를 사용합니까, 아니면 다른 방식으로 키의 순서를 결정합니까? 전자는 이미 정렬 된 자동 inc 열의 이점이 있기 때문에 더 나을 것이지만 복합 열에서 정렬이 수행되는 방법에 대한 정보는 찾을 수 없습니다.

이 어떤 통찰력을 크게 받고있다 : 여러 colums에

+1

id, hash로 정렬됩니다. –

+0

나는 순서가 중요하기 때문에 DDL과 같을 것이라고 생각한다. 일반적으로 데이터베이스 시스템은 주문을 지정할 수 없습니다. 그리고 기본 키의 순서는 성능 조정의 요소입니다. –

답변

1

기본 키는 선택된 열 값의 연결로 MySQL에 의해 관리된다. 따라서 첫 번째 열은 집계의 시작 부분에 있으므로 더 빨리 정렬 될 수 있습니다.

관련 문제