색인은 테이블의 둘 이상의 열에 정의 될 수 있습니다. 예를 들어이 양식의 테이블이있는 경우
테이블 생성 test2 ( 주요 INT, 사소한 int, 이름 바르 르 차 );
(예 :/dev
데이터베이스의 디렉토리 ...) 그리고 다음과 같은 쿼리를 자주 발행합니다.
test2에서 이름을 선택하여 major =Constant
및 minor =Constant
;
그러면 열에서 젠 토토를 정의하는 것이 적절할 수 있습니다전공
and마이너
함께, 예를 들어 :
test2 (major, minor);에서 색인 생성 test2_mm_idx 만들기
현재 B-Tree, Gist, Gin 및 Brin Index 유형만이 다중 색 인덱스를 지원합니다. 최대 32 개의 열을 지정할 수 있습니다. (이 한도는 빌드시 변경 될 수 있습니다postgresql; 파일보기pg_config_manual.h
.)
멀티 컬럼 B- 트리 젠 토토는 젠 토토 열의 하위 집합을 포함하는 쿼리 조건과 함께 사용할 수 있지만, 가장 왼쪽 (왼쪽) 열에 제약이있을 때 젠 토토가 가장 효율적입니다. 정확한 규칙은 선행 열에 대한 평등 제약과 평등 제약이없는 첫 번째 열의 불평등 제약 조건이 스캔 된 젠 토토의 일부를 제한하는 데 사용된다는 것입니다. 이 열 오른쪽 열에있는 열의 제약 조건은 젠 토토에서 확인되므로 테이블 방문을 적절하게 저장하지만 스캔 해야하는 젠 토토의 일부를 줄이지 않습니다. 예를 들어, 젠 토토가 주어지면(A, B, C)
및 쿼리 조건여기서 a = 5 및 b = 42 및 c <77
, 젠 토토는 첫 번째 항목에서 스캔해야합니다.a
= 5 및B
= 42 마지막 항목을 통해a
= 5. 젠 토토 항목C
= 77은 건너 뜁니다. 그러나 여전히 스캔해야합니다. 이 지수는 원칙적으로 제약 조건이있는 쿼리에 사용될 수 있습니다.B
및/또는C
제약없이a
- 그러나 전체 젠 토토를 스캔해야하므로 대부분의 경우 플래너는 젠 토토를 사용하여 순차적 인 테이블 스캔을 선호합니다.
멀티 컬럼 GIST 젠 토토는 젠 토토 열의 하위 집합과 관련된 쿼리 조건과 함께 사용할 수 있습니다. 추가 열의 조건은 젠 토토에 의해 반환 된 항목을 제한하지만 첫 번째 열의 조건은 젠 토토를 스캔 해야하는 양을 결정하는 데 가장 중요한 조건입니다. 첫 번째 열이 추가 열에 뚜렷한 값이 많이 있더라도 첫 번째 열이 몇 가지 고유 한 값 만 있으면 GIST 지수는 비교적 비효율적입니다.
멀티 컬럼 진 젠 토토는 젠 토토 열의 하위 집합과 관련된 쿼리 조건과 함께 사용할 수 있습니다. B-Tree 또는 GIST와 달리 젠 토토 검색 효과는 쿼리 조건이 사용하는 젠 토토 열에 관계없이 동일합니다.
멀티 컬럼 브린 젠 토토는 젠 토토 열의 하위 집합과 관련된 쿼리 조건과 함께 사용할 수 있습니다. 진과 마찬가지로 B-Tree 또는 GIST와 달리 젠 토토 검색 효과는 쿼리 조건이 사용하는 젠 토토 열에 관계없이 동일합니다. 단일 테이블에 하나의 멀티 컬럼 브린 색인 대신 여러 브린 젠 토토를 갖는 유일한 이유는 다른 것이기 때문입니다pages_per_range
스토리지 매개 변수.
물론 각 열은 젠 토토 유형에 적합한 연산자와 함께 사용해야합니다. 다른 운영자와 관련된 조항은 고려되지 않습니다.
멀티 컬럼 젠 토토는 드물게 사용해야합니다. 대부분의 상황에서 단일 열의 젠 토토는 충분하고 공간과 시간을 절약합니다. 테이블 사용이 극도로 양식화되지 않는 한 세 개가 넘는 열이있는 젠 토토는 도움이되지 않을 것입니다. 참조 참조PostgreSQL : 문서 : 12 : 11.5. 여러 윈 토토 결합andPostgreSQL : 문서 : 12 : 11.9. 젠 토토 전용 스캔 및 젠 토토 커버15465_15536