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

11.3. 다중 열 범퍼카 토토

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

테이블 테스트2 생성(
  주요 정수,
  사소한 정수,
  이름 varchar
);

(예를 들어, 당신은 당신의 것을 유지합니다/dev디렉토리 데이터베이스에서...) 다음과 같은 쿼리를 자주 수행합니다.

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

그러면 열에 색인을 정의하는 것이 적절할 수 있습니다.전공그리고사소한함께, 예:

CREATE INDEX test2_mm_idx ON test2(대, 부);

현재 B-tree 및 GiST 구현만 지원합니다. 다중 열 인덱스. 최대 32개의 열을 지정할 수 있습니다. (이 빌드 시 한도가 변경될 수 있습니다.포스트그레SQL; 파일을 참조하세요pg_config_manual.h.)

쿼리 플래너는 다음과 같은 쿼리에 다중 열 인덱스를 사용할 수 있습니다. 인덱스 정의의 가장 왼쪽 열과 다른 열을 포함합니다. 간격 없이 오른쪽에 나열된 열 수입니다. 에 대한 예, 색인(a, b, c)될 수 있습니다 모든 것을 포함하는 쿼리에 사용됨a, bc또는 두 가지 모두를 포함하는 쿼리a그리고b, 또는 다음과 관련된 쿼리에서a, 그러나 다른 조합에서는 그렇지 않습니다. (쿼리에서 관련된a그리고c계획자는 색인을 사용하도록 선택할 수 있습니다.a, 치료하는 동안c일반적인 색인화되지 않은 열과 같습니다.) 물론, 각 열은 인덱스에 적합한 연산자와 함께 사용해야 합니다. 유형; 다른 연산자를 포함하는 절은 그렇지 않습니다. 고려했습니다.

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

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

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

다중 열 색인은 자제해서 사용해야 합니다. 대부분의 시간이 지나면 단일 열의 인덱스로 충분하며 공간이 절약됩니다. 그리고 시간. 열이 3개 이상인 인덱스는 거의 발생하지 않습니다. 표의 사용법이 극도로 양식화되지 않는 한 도움이 됩니다.