색인은 둘 이상의 열에 정의될 수 있습니다. 예를 들어, 다음 형식의 테이블이 있는 경우:
테이블 테스트2 생성( 주요 정수, 사소한 정수, 이름 varchar );
(말하자면, 당신은 당신의 것을 간직하고 있습니다./dev디렉토리 데이터베이스에서...) 다음과 같은 쿼리를 자주 수행합니다.
주요한 곳에서 test2에서 이름을 선택하세요 =상수AND 미성년자 =상수;
그런 다음 열에 색인을 정의하는 것이 적절할 수 있습니다.전공그리고사소한함께, 예:
CREATE INDEX test2_mm_idx ON test2(주요, 부);
현재 B-tree 및 GiST 구현만 지원합니다. 다중 열 인덱스. 최대 32개의 열을 지정할 수 있습니다. (이 빌드 시 한도가 변경될 수 있습니다.포스트그레SQL; 파일을 참조하세요pg_config.h.)
쿼리 최적화 프로그램은 쿼리에 다중 열 와이즈 토토를 사용할 수 있습니다
첫 번째를 포함하는n와이즈 토토의 연속 열(적절한 옵션과 함께 사용되는 경우)
연산자)에 지정된 총 열 수까지
와이즈 토토 정의. 예를 들어,(a, b, c)다음과 관련된 쿼리에 사용할 수 있습니다.a, b및c또는 둘 다를 포함하는 쿼리에서a그리고b또는
만 포함된 쿼리a, 하지만 다음 국가에서는 그렇지 않습니다.
다른 조합. (관련된 쿼리에서a그리고c최적화기
다음에 대해 색인을 사용하도록 선택할 수 있습니다.a만
그리고 치료c일반적인 색인이 생성되지 않은 것과 같습니다
열.)
다중 열 색인은 다음과 관련된 절인 경우에만 사용할 수 있습니다. 인덱싱된 열은 다음과 조인됩니다.그리고. 예를 들어,
주요한 곳에서 test2에서 이름을 선택하세요 =상수또는 미성년자 =상수;
색인을 사용할 수 없습니다test2_mm_idx두 가지 모두를 조회하기 위해 위에 정의됨 열. (다음만 조회하는 데 사용할 수 있습니다.전공열이지만.)
다중 열 색인은 자제해서 사용해야 합니다. 대부분의 시간이 지나면 단일 열의 인덱스로 충분하며 공간이 절약됩니다. 그리고 시간. 3개 이상의 컬럼으로 구성된 인덱스는 거의 확실히 부적절합니다.