인덱스 토토 베이에서 인덱스 액세스 방법이 그것이 들었던 모든 튜플의 핵심을 역류시킵니다. 일치토토 베이 키. 액세스 메소드는not관련 실제로 인덱스의 상위 테이블에서 그 튜플을 가져 오면 그들이 토토 베이 시간을 통과하는지 여부를 결정하는 것도 아닙니다 자격 테스트 또는 기타 조건.
토토 베이 키는 a의 내부 표현입니다.여기서양식 조항index_key 운영자 Constant, 여기서 인덱스 키는 하나입니다 인덱스 및 연산자의 열은 해당 인덱스 열과 관련된 연산자 클래스. 색인 스캔에는 0 이상의 토토 베이 키가 있으며 암시 적으로 및 반환 된 튜플은 표시된 모든 것을 충족시킬 것으로 예상됩니다 정황.
운영자 클래스는 인덱스가임을 나타낼 수 있습니다.Lossy특정 연산자의 경우; 이것은 의미합니다 인덱스 토토 베이이 통과하는 모든 항목을 반환합니다. 키를 토토 베이하고 추가되지 않은 추가 항목. 핵심 시스템의 인덱스 토토 베이 기계는 해당 연산자를 다시 적용합니다 힙 튜플에 선택된. 지저분한 연산자의 경우 인덱스 토토 베이이 반환되어야합니다 다시 회전하지 않으므로 정확히 일치하는 항목 세트입니다.
그것은 모든 것을 전달하는 항목 만 올바르게 찾는다.
주어진 토토 베이 키. 또한 핵심 시스템은 단순히 모든 것을 나눠 줄 것입니다
그만큼여기서인덱스와 일치하는 조항
시맨틱 분석없이 키 및 운영자 클래스
중복인지 모순되는지 여부를 결정하십시오. 로서
예, 주어진여기서 x 4 및 x
14여기서x는 B- 트리 색인입니다
열, B- 트리에 왼쪽Amrescan
첫 번째를 깨닫기 위해 기능합니다
토토 베이 키는 중복되어 버릴 수 있습니다. 의 범위
전처리가 필요합니다Amrescan
인덱스 액세스 방법은 토토 베이 키를 a로 줄여야합니다."정규화"양식.
theamgettuple
함수는방향논쟁, 어느 쪽이든ForwardScandirection(정상적인 경우)
또는BackwardsCandirection. 첫 번째 경우
전화 후Amrescan
지정BackwardsCandirection일치하는 인덱스 항목은
정상적인 전면 방향으로amgettuple
마지막 일치하는 튜플을 반환해야합니다
인덱스에서, 평소와 같이 첫 번째 것보다는.
(이것은 광고하는 액세스 방법에 대해서만 발생합니다.
설정을 통해 주문 스캔 지원PG_AM.Amorderstrategy비존.) 첫 번째 이후
부르다,amgettuple
준비해야합니다
스캔을 가장 최근에서 어느 방향 으로든 발전시키기 위해
반환 된 항목.
액세스 방법이 지원해야합니다"마킹"토토 베이 및 나중에 돌아 오는 위치
표시된 위치로. 동일한 위치가 복원 될 수 있습니다
여러 번. 그러나 당 하나의 위치 만 기억하면됩니다
주사; 새로운ammarkpos
전화
이전에 표시된 위치를 무시합니다.
토토 베이 위치와 마크 위치 (있는 경우) 모두 동시 삽입에 직면하여 일관되게 유지됩니다 색인의 삭제. 새로 삽입 된 항목이 있으면 괜찮습니다 입력을 찾은 토토 베이으로 반환되지 않음 토토 베이이 시작되었을 때 또는 토토 베이이 그러한 구출되거나 백업시 입장 처음으로 돌아 왔습니다. 마찬가지로 동시 삭제 토토 베이 결과에 반영되거나 없을 수도 있습니다. 무엇인가요 삽입 또는 삭제가 토토 베이을 유발하지 않는다는 것입니다. 그 자체가 아닌 리턴 항목을 놓치거나 곱하기 삽입 또는 삭제. (설정되지 않은 인덱스 유형의 경우PG_AM.amconcurrent,이를 처리하기에 충분합니다 동일한 백엔드에서 수행하는 삽입 또는 삭제 사례 토토 베이을하고 있습니다. 하지만 언제amconcurrent삽입 또는 삭제는 참입니다 다른 백엔드에서도 처리해야합니다.)
사용하는 대신amgettuple
, an
인덱스 토토 베이을 수행 할 수 있습니다Amgetmulti
통화 당 여러 튜플을 가져 오려면.
이것은보다 눈에 띄게 더 효율적일 수 있습니다.AmgetTuple
피할 수 있기 때문입니다
액세스 방법 내에서 사이클을 잠그기/잠금 해제합니다. 원칙적으로Amgetmulti
동일해야합니다
반복되는 효과amgettuple
호출이지만 문제를 단순화하기위한 몇 가지 제한을 부과합니다. ~ 안에
첫 번째 장소,Amgetmulti
취하지 않음방향인수 및
따라서 역방향 스캔이나 인트라 칸을 지원하지 않습니다
방향의 역전. 액세스 방법은 마킹을 지원할 필요가 없습니다
또는 an 동안 스캔 위치 복원Amgetmulti
토토 베이. (이 제한
이러한 기능을 사용하기가 어렵 기 때문에 비용이 거의 들지 않습니다.Amgetmulti
어쨌든 토토 베이 :
발신자의 버퍼링 된 TID 목록을 조정하는 것은 복잡합니다.)
마지막으로,Amgetmulti
그렇지 않습니다
반환 된 튜플의 잠금을 보장합니다
철자PostgreSQL : 문서 : 8.1 : 토토 베이 잠금 고려 사항.