주문 기준단순히 쿼리에 의해 반환될 행을 찾는 것 외에도 색인은 특정 정렬 순서로 행을 전달할 수 있습니다. 이를 통해 쿼리의주문 기준별도의 정렬 단계 없이 사양이 적용됩니다. 현재 지원되는 인덱스 유형 중PostgreSQL, 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);
먼저 null을 포함하여 오름차순으로 저장된 인덱스는 다음 중 하나를 충족할 수 있습니다.ORDER BY x ASC NULL 먼저또는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 DESC)또는(x DESC, y ASC).
분명히 기본이 아닌 정렬 순서를 가진 스포츠 토토는 상당히 전문적인 기능이지만 때로는 특정 쿼리에 대해 엄청난 속도 향상을 가져올 수 있습니다. 이러한 스포츠 토토를 유지할 가치가 있는지 여부는 특별한 정렬 순서가 필요한 쿼리를 얼마나 자주 사용하는지에 따라 달라집니다.