이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
다음에 대한 동일한 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 11.3. 멀티 컬럼 토토 캔버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

8.3. 다중 열 인덱스

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

테이블 테스트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, bc또는 둘 다를 포함하는 쿼리에서a그리고b또는 만 포함된 쿼리a, 하지만 다음 국가에서는 그렇지 않습니다. 다른 조합. (관련된 쿼리에서a그리고c최적화기 다음에 대해 색인을 사용하도록 선택할 수 있습니다.a만 그리고 치료c일반적인 색인이 생성되지 않은 것과 같습니다 열.)

다중 열 색인은 다음과 관련된 절인 경우에만 사용할 수 있습니다. 인덱싱된 열은 다음과 조인됩니다.그리고. 예를 들어,

주요한 곳에서 test2에서 이름을 선택하세요 =상수또는 미성년자 =상수;

색인을 사용할 수 없습니다test2_mm_idx두 가지 모두를 조회하기 위해 위에 정의됨 열. (다음만 조회하는 데 사용할 수 있습니다.전공열이지만.)

다중 열 색인은 자제해서 사용해야 합니다. 대부분의 시간이 지나면 단일 열의 인덱스로 충분하며 공간이 절약됩니다. 그리고 시간. 3개 이상의 컬럼으로 구성된 인덱스는 거의 확실히 부적절합니다.