이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 11.4. 색인 및 배트맨 토토버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

11.4. 인덱스 및토토 캔 으로

단순히 반환할 행을 찾는 것 외에도 쿼리의 경우 인덱스는 특정 정렬 방식으로 쿼리를 전달할 수 있습니다. 토토 캔. 이를 통해 쿼리의토토 캔 기준별도의 정렬 단계 없이 사양이 적용됩니다. 의 현재 지원되는 인덱스 유형포스트그레SQL, B-트리만이 정렬된 결과를 생성할 수 있습니다. 출력 — 다른 인덱스 유형은 일치하는 행을 반환합니다. 지정되지 않은 구현 종속 순서입니다.

기획자는 만족을 고려할 것입니다.토토 캔 기준사양을 스캔하여 사양과 일치하거나 스캔하여 사용 가능한 인덱스 물리적 순서대로 테이블을 정리하고 명시적인 정렬을 수행합니다. 에 대한 테이블의 많은 부분을 스캔해야 하는 쿼리 명시적 정렬은 인덱스를 사용하는 것보다 더 빠를 가능성이 높습니다. 순차 액세스를 따르므로 디스크 I/O가 덜 필요합니다. 패턴. 인덱스는 몇 개의 행만 필요할 때 더 유용합니다. 가져왔습니다. 중요한 특수 사례는 다음과 같습니다.토토 캔 으로함께한도 n: 명시적 정렬은 다음을 수행해야 합니다. 첫 번째 데이터를 식별하기 위해 모든 데이터를 처리합니다.n행, 그러나 일치하는 색인이 있는 경우토토 캔 기준첫 번째n행은 없이 직접 검색할 수 있습니다. 나머지를 전혀 스캔하지 않습니다.

기본적으로 B-트리 색인은 항목을 오름차순으로 저장합니다. null을 마지막으로 토토 캔하세요. 이는 인덱스의 정방향 스캔을 의미합니다. 열에x만족스러운 출력 생성x로 토토 캔(좀 더 장황하게 말하면,ORDER BY x ASC NULL이 마지막임). 인덱스 뒤로 스캔하여 만족스러운 출력을 생성할 수도 있습니다.ORDER BY x DESC(좀 더 장황하게 말하면,ORDER BY x DESC NULLS 먼저, 이후NULL이 먼저임기본값은설명별 토토 캔).

당신은 다음을 포함하여 B-트리 색인의 순서를 조정할 수 있습니다 옵션ASC, 설명, NULL이 먼저임및/또는NULL이 마지막임색인을 생성할 때; 에 대한 예:

CREATE INDEX test2_info_nulls_low ON test2(정보가 NULL부터 먼저);
CREATE INDEX test3_desc_index ON test3(ID DESC NULLS LAST);

널을 포함하여 오름차순으로 저장된 인덱스는 먼저 둘 중 하나를 만족함ORDER BY x ASC NULLS 첫 번째또는ORDER BY x DESC NULLS 마지막스캔되는 방향에 따라 다릅니다.

당신은 왜 네 가지 옵션을 모두 제공해야 하는지 궁금할 것입니다. 역방향 스캔 가능성과 함께 두 가지 옵션은 모든 변형을 포함합니다.토토 캔 기준. 에서 단일 열 인덱스에서는 옵션이 실제로 중복되지만 여러 열 인덱스가 유용할 수 있습니다. 2열을 고려해보세요 색인(x, y): 이것은 만족할 수 있습니다x, y로 토토 캔앞으로 스캔하면, 또는ORDER BY x DESC, y DESC스캔하면 뒤로. 하지만 응용프로그램이 자주 필요할 수도 있습니다. 사용하다ORDER BY x ASC, y DESC. 있다 일반 인덱스에서 해당 순서를 얻을 수 있는 방법은 없지만 인덱스가 다음과 같이 정의된 경우 가능합니다.(x ASC, y 설명)또는(x DESC, y ASC).

분명히, 기본 정렬 순서가 아닌 인덱스는 상당히 전문화된 기능이지만 때로는 특정 쿼리에 대한 엄청난 속도 향상. 가치가 있는지 이러한 인덱스를 유지하는 것은 쿼리 사용 빈도에 따라 다릅니다. 특별한 정렬 순서가 필요합니다.