이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 11.3. 멀티 컬럼 토토 캔버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

11.3. 멀티 컬럼 토토 캔

색인은 테이블의 둘 이상의 열에서 정의 될 수 있습니다. 예를 들어이 양식의 테이블이있는 경우

테이블 생성 test2 (
  주요 INT,
  사소한 int,
  이름 바르 르 차
);

(예 :/dev데이터베이스의 디렉토리 ...) 그리고 다음과 같은 쿼리를 자주 발행합니다.

test2에서 이름을 선택하여 major =상수및 minor =Constant;

그러면 열에서 토토 캔를 정의하는 것이 적절할 수 있습니다메이저and마이너함께, 예를 들어 :

test2에서 토토 캔 test2_mm_idx 만들기 (major, minor);

현재 B-Tree, Gist, Gin 및 Brin Index 유형만이 다중 색 인덱스를 지원합니다. 최대 32 개의 열을 지정할 수 있습니다. (이 한도는 빌드시 변경 될 수 있습니다PostgreSQL; 파일보기pg_config_manual.h.)

멀티 컬럼 B- 트리 토토 캔는 토토 캔 열의 하위 집합을 포함하는 쿼리 조건과 함께 사용할 수 있지만, 주요 (왼쪽) 열에 제약이있을 때 토토 캔가 가장 효율적입니다. 정확한 규칙은 선행 열에 대한 평등 제약과 평등 제약이없는 첫 번째 열의 불평등 제약 조건이 스캔 된 토토 캔의 일부를 제한하는 데 사용된다는 것입니다. 이 열 오른쪽 열에있는 열의 제약 조건은 토토 캔에서 확인되므로 테이블 방문을 적절하게 저장하지만 스캔 해야하는 토토 캔의 일부를 줄이지 않습니다. 예를 들어, 토토 캔가 주어지면(A, B, C)및 쿼리 조건여기서 a = 5 및 b = 42 및 c <7712468_12533a= 5 및B= 42 마지막 항목을 통해a= 5. 토토 캔 항목C = 77은 건너 뜁니다. 그러나 여전히 스캔해야합니다. 이 지수는 원칙적으로 제약 조건이있는 쿼리에 사용될 수 있습니다.B및/또는C제약없이a- 그러나 전체 토토 캔를 스캔해야하므로 대부분의 경우 플래너는 토토 캔를 사용하여 순차적 테이블 스캔을 선호합니다..

멀티 컬럼 GIST 토토 캔는 토토 캔 열의 하위 집합과 관련된 쿼리 조건과 함께 사용할 수 있습니다. 추가 열의 조건은 토토 캔에 의해 반환 된 항목을 제한하지만 첫 번째 열의 조건은 토토 캔를 스캔 해야하는 양을 결정하는 데 가장 중요한 조건입니다. 첫 번째 열이 추가 열에 뚜렷한 값이 많이 있더라도 첫 번째 열이 몇 가지 고유 한 값 만 있으면 GIST 지수는 비교적 비효율적입니다.

토토 캔 열의 하위 집합이 포함 된 쿼리 조건과 함께 다중 색상 진 토토 캔를 사용할 수 있습니다. B-Tree 또는 GIST와 달리 토토 캔 검색 효과는 쿼리 조건이 사용하는 토토 캔 열에 관계없이 동일합니다.

멀티 컬럼 브린 색인은 토토 캔 열의 하위 집합과 관련된 쿼리 조건과 함께 사용할 수 있습니다. 진과 마찬가지로 B-Tree 또는 GIST와 달리 토토 캔 검색 효과는 쿼리 조건이 사용하는 토토 캔 열에 관계없이 동일합니다. 단일 테이블에 하나의 멀티 컬럼 브린 색인 대신 여러 브린 토토 캔를 갖는 유일한 이유는 다른 것이기 때문입니다pages_per_range스토리지 매개 변수.

물론 각 열은 토토 캔 유형에 적합한 연산자와 함께 사용해야합니다. 다른 운영자와 관련된 조항은 고려되지 않습니다.

멀티 컬럼 토토 캔는 드물게 사용해야합니다. 대부분의 상황에서 단일 열의 토토 캔는 충분하고 공간과 시간을 절약합니다. 테이블 사용이 극도로 양식화되지 않는 한 세 개가 넘는 열이있는 토토 캔는 도움이되지 않을 것입니다. 참조 참조PostgreSQL : 문서 : 9.5 : 여러 롤 토토 결합다른 토토 캔 구성의 장점에 대한 논의는