젠 토토 : 문서 : 9.6 : 젠 토토 | |||
---|---|---|---|
스포츠 토토 PostgreSQL : 문서 : 9.6 : Extensibility | PostgreSQL : 문서 : 9.6 : 스포츠 토토 Indexes | 62 장. SP-Gist Indexes | 범퍼카 토토 : 문서 : 9.6 : 예제 |
이 섹션은 윈 토토 세부 사항 및 윈 토토 자에게 유용한 기타 트릭을 다룹니다.SP-Gist알아볼 운영자 클래스.
개별 잎 튜플과 내부 튜플은 단일 인덱스 페이지 (기본적으로 8kb)에 맞아야합니다. 따라서 가변 길이의 데이터 유형의 인덱싱 값을 인덱싱 할 때, 긴 값은 Radix Trees와 같은 방법에 의해서만 지원 될 수 있으며, 여기에는 트리의 각 레벨에는 페이지에 맞을 정도로 짧은 접두사가 포함되며 최종 잎 수준에는 페이지에 맞을 정도로 짧은 접미사가 포함됩니다. 운영자 클래스가 설정해야LongValuesok이 일이 일어나도록 준비된 경우에만 true. 그렇지 않으면SP-GistCore는 색인 페이지에 너무 큰 값을 색인하라는 요청을 거부합니다.
마찬가지로, 내부 튜플이 인덱스 페이지에 맞지 않기에는 내부 튜플이 너무 커지지 않는 것이 운영자 클래스의 책임입니다. 이것은 하나의 내부 튜플에서 사용할 수있는 자식 윈 토토의 수와 접두사 값의 최대 크기를 제한합니다.
또 다른 한계는 내부 튜플의 윈 토토가 잎 튜플 세트를 가리키면 그 튜플이 모두 같은 색인 페이지에 있어야한다는 것입니다. (이것은 그러한 튜플을 묶는 링크의 탐색을 줄이고 공간을 절약하기위한 설계 결정입니다.) 잎 튜플 세트가 페이지에 비해 너무 커지면 분할이 수행되고 중간 내부 튜플이 삽입됩니다. 문제를 해결하기 위해 새로운 내부 튜플필수잎 값 세트를 하나 이상의 윈 토토 그룹으로 나눕니다. 운영자 클래스의 경우picksplit
함수는 그렇게하지 못합니다.SP-Gist핵심 조치에 대한 핵심 리조트섹션 62.4.3.
언제LongValuesok사실입니다.의 연속적인 수준이 예상됩니다.SP-Gist트리는 내부 튜플의 접두사 및 윈 토토 레이블에 점점 더 많은 정보를 흡수하여 필요한 잎 기준을 작고 작게 만들어 결국 페이지에 맞습니다. 운영자 클래스의 버그가 무한 삽입 루프를 유발하지 않도록SP-Gist코어는 잎 기준이 10 사이클 이내에 더 작아지지 않으면 오류가 발생합니다선택
메소드 호출.
일부 트리 알고리즘은 각 내부 튜플에 고정 된 윈 토토 세트를 사용합니다. 예를 들어, 쿼드 트리에는 항상 내부 튜플의 중심 지점 주위의 4 개의 사분면에 해당하는 정확히 4 개의 윈 토토가 있습니다. 이 경우 코드는 일반적으로 숫자별로 윈 토토와 함께 작동하며 명시적인 윈 토토 레이블이 필요하지 않습니다. 윈 토토 레이블을 억제하고 공간을 절약하려면picksplit
함수는 null을 반환 할 수 있습니다Nodelabels배열. 결과적으로Nodelabels후속 호출 중선택
andInner_consistent
. 원칙적으로 윈 토토 레이블은 일부 내부 튜플에 사용되어 같은 색인의 다른 튜플에 생략 할 수 있습니다.
표지되지 않은 윈 토토를 가진 내부 튜플로 작업 할 때는에 대한 오류입니다.선택
반환SPGADDNODE, 윈 토토 세트는 그러한 경우에 고정되어야하기 때문입니다. 또한 표지되지 않은 윈 토토를 생성하는 조항은 없습니다.spgsplittuple행동, AN이기 때문에SPGADDNODE행동도 필요합니다.
theSP-Gist코어는 운영자 클래스의 결과를 무시할 수 있습니다picksplit
picksplit
제공된 잎 값을 최소한 두 노드 범주로 나누지 못합니다. 이런 일이 발생하면 새 내부 튜플은 각각 동일한 레이블 (있는 경우)을 갖는 여러 노드로 생성됩니다.picksplit
사용했던 하나의 윈 토토에 주어졌으며, 잎 값은 이들 동등한 윈 토토들 사이에서 무작위로 나뉩니다. 그만큼Allthesame플래그는 내부 튜플에 설정되어선택
andInner_consistent
튜플에 다른 방법으로 기대할 수있는 윈 토토 세트가없는 함수.
대처할 때Allthesame튜플, A선택
결과SPGMATCHNODE새 값이 동등한 윈 토토에 할당 될 수 있음을 의미하는 것으로 해석됩니다. 핵심 코드는 제공된 것을 무시합니다Noden값을 무작위로 윈 토토 중 하나로 내려갑니다 (나무의 균형을 유지하기 위해). 에 대한 오류입니다.선택
반환Spgaddnode, 그로 인해 윈 토토가 모두 동일하지 않기 때문입니다. 그만큼SPGSPlittuple삽입 할 값이 기존 윈 토토와 일치하지 않으면 조치를 사용해야합니다.
처리 할 때Allthesame튜플,Inner_consistent
함수는 모두 동등하기 때문에 인덱스 검색을 계속하기위한 대상으로 노드 또는 전부를 반환해야합니다. 이것은 얼마나 많은지에 따라 특수 사례 코드를 요구할 수도 있고 필요하지 않을 수 있습니다.Inner_consistent
함수는 일반적으로 윈 토토의 의미에 대해 가정합니다.