| PostgreSQL 9.0.23 문서 | ||||
|---|---|---|---|---|
| PostgreSQL : 문서 : 9.0 : 멀티 컬럼 토토 커뮤니티 | 위로 | 11장. 스포츠 토토 결과 | 메이저 토토 사이트 : 문서 : 9.0 : 여러 인덱스 결합 | |
단순히 반환할 행을 찾는 것 외에도 쿼리의 경우 스포츠 토토 결과는 특정 정렬 방식으로 쿼리를 전달할 수 있습니다. 주문. 이를 통해 쿼리의주문 기준별도의 정렬 단계 없이 사양이 적용됩니다. 의 현재 지원되는 인덱스 유형포스트그레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).
분명히, 기본 정렬 순서가 아닌 스포츠 토토 결과는 상당히 전문화된 기능이지만 때로는 특정 쿼리에 대한 엄청난 속도 향상. 가치가 있는지 이러한 스포츠 토토 결과를 유지하는 것은 쿼리 사용 빈도에 따라 다릅니다. 특별한 정렬 순서가 필요합니다.