Postgresql 9.1.24 문서 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.1 : 토토 베이 유형 | up | 11 장. 사설 토토 | PostgreSQL : 문서 : 9.1 : 색인 및 토토 캔 |
색인은 테이블의 둘 이상의 열에서 정의 될 수 있습니다. 예를 들어이 양식의 테이블이있는 경우
테이블 생성 test2 ( 주요 INT, 사소한 int, 이름 바르 르 차 );
(예 : 당신은 당신의 것을 유지합니다/dev디렉토리 데이터베이스에서 ...) 그리고 당신은 다음과 같은 쿼리를 자주 발행합니다.
test2에서 이름을 선택하여 major =Constant및 minor =Constant;
그러면 열에서 사설 토토를 정의하는 것이 적절할 수 있습니다전공and마이너함께, 예를 들어 :
test2 (major, minor);에서 색인 생성 test2_mm_idx 만들기
현재 B- 트리, GIST 및 GIN 인덱스 유형 지원 만 지원합니다. 멀티 컬럼 인덱스. 최대 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 사설 토토를 사용할 수 있습니다. 여기에는 사설 토토 열의 하위 집합이 포함됩니다. 조건 추가 열은 사설 토토에 의해 반환 된 항목을 제한하고 그러나 첫 번째 열의 조건이 가장 중요한 조건입니다. 사설 토토의 양을 스캔 해야하는 양을 결정합니다. 요점 첫 번째 열만 있으면 사설 토토가 비교적 비효율적입니다. 뚜렷한 값이 많이 있더라도 몇 가지 뚜렷한 값 추가 열.
쿼리 조건과 함께 다중 색상 진 사설 토토를 사용할 수 있습니다. 사설 토토 열의 하위 집합을 포함합니다. B-Tree 또는 Gist와 달리 색인 검색 효과는 어떤 색인에 관계없이 동일합니다. 열 (들) 쿼리 조건이 사용됩니다.
물론 각 열은 연산자와 함께 사용해야합니다. 사설 토토 유형에; 다른 운영자와 관련된 조항은 그렇지 않습니다 고려하십시오.
멀티 컬럼 인덱스는 드물게 사용해야합니다. 대부분 상황, 단일 열의 색인이 충분하고 저장됩니다. 공간과 시간. 열이 3 개가 넘는 인덱스는 거의 없습니다 테이블 사용이 극도로 양식화. 참조 참조PostgreSQL : 문서 : 9.1 : 여러 토토 베이 결합다른 지수의 장점에 대한 논의 구성.