| PostgreSQL 9.3.25 문서 | ||||
|---|---|---|---|---|
| 사설 토토 PostgreSQL : 문서 : 9.3 : Extensibility | 스포츠 토토 : 문서 : 9.3 : SP-Gist Indexes | 56장. SP-GiST 인덱스 | 토토 베이 : 문서 : 9.3 : 예제 | |
이 섹션에서는 롤 토토 세부사항 및 기타 트릭을 다룹니다. 롤 토토자에게 유용합니다.SP-GiST알아두어야 할 연산자 클래스.
개별 리프 튜플과 내부 튜플은 단일에 맞아야 합니다. 인덱스 페이지(기본적으로 8KB) 따라서 값을 인덱싱할 때 가변 길이 데이터 유형, 긴 값은 다음에서만 지원됩니다. 기수 트리와 같은 방법으로 트리의 각 수준이 페이지에 들어갈 만큼 짧은 접두어를 포함하며, 최종 리프 수준에는 다음 항목에 맞을 정도로 짧은 접미사가 포함됩니다. 페이지. 연산자 클래스는 설정해야 합니다.longValuesOK다음을 수행할 준비가 된 경우에만 TRUE로 설정됩니다. 이런 일이 일어나도록 준비하십시오. 그렇지 않으면,SP-GiST코어는 색인 생성 요청을 거부합니다. 값이 너무 커서 색인 페이지에 맞지 않습니다.
마찬가지로, 내부적으로 튜플은 인덱스 페이지에 맞을 정도로 너무 커지지 않습니다. 이 제한 하나의 내부 튜플에서 사용할 수 있는 자식 노드의 수는 다음과 같습니다. 접두사 값의 최대 크기도 마찬가지입니다.
또 다른 제한은 내부 튜플의 노드가 다음을 가리킬 때입니다.
리프 튜플 세트, 해당 튜플은 모두 동일한 인덱스에 있어야 합니다.
페이지. (이것은 탐색을 줄이고 공간을 절약하기 위한 설계 결정입니다.
그러한 튜플을 함께 연결하는 링크에서.) 리프 세트가
튜플이 페이지에 비해 너무 커지면 분할이 수행되고
중간 내부 튜플이 삽입됩니다. 이 문제를 해결하려면,
새로운 내부 튜플반드시리프 값 세트를 둘 이상의 롤 토토 그룹으로 나눕니다. 만약
연산자 클래스의picksplit함수
그렇게 하지 못했습니다.SP-GiST핵심은 다음에 설명된 특별 조치를 취합니다.섹션
56.3.3.
일부 트리 알고리즘은 각 내부 노드에 대해 고정된 노드 세트를 사용합니다.
튜플; 예를 들어 쿼드트리에는 항상 정확히 4개의 트리가 있습니다.
내부 튜플 주위의 4개 사분면에 해당하는 노드
중심점. 이러한 경우 코드는 일반적으로 다음과 함께 작동합니다.
노드는 숫자로 표시되며 명시적인 노드 레이블이 필요하지 않습니다. 받는 사람
노드 레이블을 억제하여 공간을 절약합니다.picksplit함수는 NULL을 반환할 수 있습니다.
에 대한롤 토토 라벨배열. 이것은
결과를 제출하세요롤 토토 라벨NULL임
이후 통화 중선택그리고내부_일관성. 원칙적으로 롤 토토
레이블은 일부 내부 튜플에 사용될 수 있고 다른 튜플에는 생략될 수 있습니다.
같은 색인에 있습니다.
레이블이 지정되지 않은 노드가 있는 내부 튜플로 작업할 때 다음과 같습니다.
오류가 발생했습니다.선택돌아오다spgAddNode, 노드 세트는 다음과 같습니다.
그러한 경우에는 수정되어야 합니다. 또한 이에 대한 규정도 없다.
레이블이 없는 노드 생성spgSplitTuple작업, 다음이 예상되므로spgAddNode다음과 같은 조치가 필요합니다
음.
그SP-GiST코어가 재정의될 수 있음
연산자 클래스의 결과picksplit경우에 함수picksplit제공된 리프를 나누는 데 실패했습니다.
값을 두 개 이상의 노드 범주로 나눕니다. 이런 일이 발생하면
새로운 내부 튜플은 각각 다음을 갖는 여러 노드로 생성됩니다.
동일한 라벨(있는 경우)picksplit사용한 노드 하나에 부여했으며 리프 값은 다음에서 나뉩니다.
이러한 등가 노드 중에서 무작위입니다.allTheSame경고하기 위해 내부 튜플에 플래그가 설정되어 있습니다.선택그리고내부_일관성튜플이 수행하는 기능
예상할 수 있는 롤 토토 세트가 없습니다.
다음을 처리할 때allTheSame튜플,
에선택결과spgMatchNode은 새로운 것을 의미하는 것으로 해석됩니다.
값은 동등한 롤 토토 중 하나에 할당될 수 있습니다. 핵심 코드
제공된 내용을 무시합니다롤 토토N값
노드 중 하나로 무작위로 내려갑니다(트리를 유지하기 위해).
균형 잡힌). 오류입니다.선택돌아오다spgAddNode, 그러면 그럴 테니까
롤 토토를 모두 동일하게 만들지 마십시오.spgSplitTuple값을 얻으려면 작업을 사용해야 합니다.
삽입된 항목이 기존 롤 토토와 일치하지 않습니다.
다음을 처리할 때allTheSame튜플,내부_일관성함수는 다음과 같습니다
계속할 대상으로 모든 노드를 반환하거나 전혀 반환하지 않습니다.
인덱스 검색은 모두 동일하기 때문입니다. 이것은 그럴 수도 있고 그럴 수도 있다
금액에 따라 특수 사례 코드가 필요하지 않습니다.내부_일관성정상적으로 작동
롤 토토의 의미에 대해 가정합니다.