인덱스 범퍼카 토토에서 인덱스 액세스 방법은 일치하는 것으로 알려진 모든 튜플의 TID를 역류하는 일을 담당합니다.범퍼카 토토 키. 액세스 방법은 다음과 같습니다.아님실제로 인덱스의 상위 테이블에서 해당 튜플을 가져오는 데 관여하거나 범퍼카 토토의 가시성 테스트 또는 기타 조건을 통과하는지 여부를 결정하는 데 관여합니다.
범퍼카 토토 키는 다음의 내부 표현입니다.어디양식의 절index_key 연산자 상수, 여기서 인덱스 키는 인덱스 열 중 하나이고 연산자는 해당 인덱스 열과 연결된 연산자 계열의 구성원 중 하나입니다. 인덱스 스캔에는 암시적으로 AND로 연결된 0개 이상의 범퍼카 토토 키가 있습니다. 반환된 튜플은 표시된 모든 조건을 충족할 것으로 예상됩니다.
액세스 방법은 색인이 다음과 같다고 보고할 수 있습니다.손실또는 특정 쿼리에 대해 재확인이 필요합니다. 이는 인덱스 스캔이 범퍼카 토토 키를 전달하는 모든 항목과 그렇지 않은 추가 항목을 반환한다는 것을 의미합니다. 그런 다음 코어 시스템의 인덱스 스캔 기계는 인덱스 조건을 다시 힙 튜플에 적용하여 실제로 선택해야 하는지 여부를 확인합니다. 재검사 옵션이 지정되지 않은 경우 인덱스 스캔은 정확히 일치하는 항목 세트를 반환해야 합니다.
주어진 모든 범퍼카 토토 키를 전달하는 항목만 모두 정확하게 찾는 것은 전적으로 액세스 방법에 달려 있습니다. 또한 핵심 시스템은 모든 것을 간단히 전달할 것입니다.어디절이 중복되거나 모순되는지 확인하기 위한 의미 분석 없이 인덱스 키 및 연산자 계열과 일치하는 절입니다. 예를 들어, 주어진x 4 AND x 14인 경우어디에서xb-트리 인덱스 열이며 b-트리에 남습니다.amrescan함수는 첫 번째 범퍼카 토토 키가 중복되어 폐기될 수 있음을 인식합니다. 동안 필요한 전처리 정도amrescan인덱스 액세스 방법이 범퍼카 토토 키를 a로 줄여야 하는 정도에 따라 달라집니다.“정규화”양식.
일부 액세스 방법은 잘 정의된 순서로 색인 항목을 반환하지만 다른 액세스 방법은 그렇지 않습니다. 실제로 액세스 방법이 정렬된 출력을 지원할 수 있는 두 가지 방법이 있습니다.
항상 데이터의 자연스러운 순서로 항목을 반환하는 액세스 방법(예: btree)이 설정되어야 합니다.암캔오더참입니다. 현재 이러한 액세스 방법은 동등 및 순서 연산자에 대해 btree 호환 전략 번호를 사용해야 합니다.
순서 연산자를 지원하는 액세스 방법을 설정해야 함amcanorderbyop참으로. 이는 인덱스가 만족하는 순서로 항목을 반환할 수 있음을 나타냅니다.주문 기준 index_key 연산자 상수. 해당 형식의 스캔 수정자는 다음으로 전달될 수 있습니다.amrescan이전에 설명한 대로입니다.
그amgettuple함수에는방향인수, 둘 중 하나일 수 있음ForwardScanDirection(일반적인 경우) 또는BackwardScanDirection. 이후 첫 번째 통화인 경우amrescan지정BackwardScanDirection, 일치하는 색인 항목 세트는 일반적인 앞에서 뒤로 방향이 아닌 뒤에서 앞으로 스캔되므로amgettuple일반적인 첫 번째 튜플이 아니라 인덱스에서 마지막으로 일치하는 튜플을 반환해야 합니다. (이는 설정된 액세스 방법에만 발생합니다.암캔오더to true.) 첫 번째 호출 후,amgettuple가장 최근에 반환된 항목에서 어느 방향으로든 스캔을 진행할 준비가 되어 있어야 합니다. (그러나 만약에amcanbackwardfalse이면 모든 후속 호출은 첫 번째 호출과 동일한 방향을 갖습니다.)
순서화된 스캔을 지원하는 액세스 방법은 다음을 지원해야 합니다.“마킹”범퍼카 토토의 위치이며 나중에 표시된 위치로 돌아갑니다. 동일한 위치가 여러 번 복원될 수 있습니다. 그러나 범퍼카 토토당 하나의 위치만 기억하면 됩니다. 새로운ammarkpos호출은 이전에 표시된 위치를 재정의합니다. 순서화된 스캔을 지원하지 않는 액세스 방법은 제공할 필요가 없습니다.ammarkpos그리고amrestrpos함수IndexAmRoutine; 대신 해당 포인터를 NULL로 설정하세요.
범퍼카 토토 위치와 마크 위치(있는 경우)는 인덱스에 동시 삽입 또는 삭제가 발생하더라도 일관되게 유지되어야 합니다. 새로 삽입된 항목이 범퍼카 토토이 시작될 때 존재했다면 해당 항목을 찾았을 범퍼카 토토에서 반환되지 않거나 처음에 반환되지 않았더라도 다시 범퍼카 토토하거나 백업할 때 해당 항목을 반환하는 범퍼카 토토에서는 괜찮습니다. 마찬가지로 동시 삭제는 검색 결과에 반영되거나 반영되지 않을 수 있습니다. 중요한 것은 삽입 또는 삭제로 인해 범퍼카 토토에서 삽입 또는 삭제되지 않은 반환 항목이 누락되거나 증가하지 않는다는 것입니다.
색인이 원래 색인된 데이터 값을 저장하는 경우(그리고 손실된 표현이 아닌) 이를 지원하는 것이 유용합니다.PostgreSQL :, 여기서 인덱스는 힙 튜플의 TID뿐만 아니라 실제 데이터를 반환합니다. 이는 가시성 맵에 TID가 모두 표시되는 페이지에 있음이 표시되는 경우에만 I/O를 방지합니다. 그렇지 않으면 MVCC 가시성을 확인하기 위해 어쨌든 힙 튜플을 방문해야 합니다. 그러나 이는 액세스 방법과는 관련이 없습니다.
사용하는 대신amgettuple, 인덱스 범퍼카 토토은로 수행할 수 있습니다.amgetbitmap한 번의 호출로 모든 튜플을 가져옵니다. 이는 다음보다 눈에 띄게 더 효율적일 수 있습니다.amgettuple액세스 방법 내에서 잠금/잠금 해제 주기를 피할 수 있기 때문입니다. 원칙적으로amgetbitmap반복된 것과 동일한 효과를 가져야 합니다amgettuple호출하지만 문제를 단순화하기 위해 몇 가지 제한 사항을 적용합니다. 우선,amgetbitmap모든 튜플을 한 번에 반환하며 스캔 위치 표시 또는 복원은 지원되지 않습니다. 둘째, 튜플은 특정 순서가 없는 비트맵으로 반환됩니다. 이것이 바로 이유입니다.amgetbitmap않음방향인수. (이러한 스캔에는 순서 연산자가 제공되지 않습니다.) 또한 다음을 사용한 인덱스 전용 스캔에 대한 규정도 없습니다.amgetbitmap, 인덱스 튜플의 내용을 반환할 방법이 없기 때문입니다. 마지막으로,amgetbitmap반환된 튜플의 잠금을 보장하지 않습니다. 의미는 다음에서 설명됩니다.무지개 토토 : 문서 : 17 : 62.4. 색인 잠금 고려 사항.
액세스 방법은 구현에만 허용됩니다.amgetbitmap그리고 아님amgettuple또는 그 반대(내부 구현이 하나의 API 또는 다른 API에 적합하지 않은 경우).
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.