이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다PostgreSQL : 문서 : 17 : 62.3. 토토 핫 메이저 토토 사이트버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

52.3. 인덱스 토토 핫

인덱스 토토 핫에서 인덱스 액세스 방법이 그것이 들었던 모든 튜플의 핵심을 역류시킵니다. 일치토토 핫 키. 액세스 메소드는not관련 실제로 인덱스의 상위 테이블에서 그 튜플을 가져 오면 그들이 토토 핫 시간을 통과하는지 여부를 결정하는 것도 아닙니다 자격 테스트 또는 기타 조건.

토토 핫 키는 a의 내부 표현입니다.여기서양식 조항index_key 운영자 상수, 여기서 인덱스 키는 그 중 하나입니다 인덱스 및 연산자의 열은 해당 색인 열과 관련된 운영자 제품군. 색인 스캔에는 0 이상의 토토 핫 키가 있으며 암시 적으로 및 반환 된 튜플은 표시된 모든 것을 충족시킬 것으로 예상됩니다 정황.

액세스 방법은 토토 핫가라고보고 할 수 있습니다.Lossy또는 특정에 대해 재확인이 필요합니다 질문. 이것은 인덱스 스캔이 모든 토토 핫 키를 전달하는 항목 및 추가 항목 그렇지 않습니다. 그러면 핵심 시스템의 인덱스 스캔 기계가 될 것입니다 인덱스 조건을 힙 튜플에 다시 적용하여 확인하십시오. 실제로 선택 해야하는지 여부. 다시 확인하는 경우 옵션이 지정되지 않으며 인덱스 스캔은 정확히 반환해야합니다. 일치하는 항목 세트.

전적으로 액세스 방법에 달려 있습니다. 그것은 모든 것을 전달하는 항목 만 올바르게 찾는다. 주어진 토토 핫 키. 또한 핵심 시스템은 단순히 모든 것을 나눠 줄 것입니다 그만큼여기서인덱스와 일치하는 클로스 시맨틱 분석없이 열쇠와 운영자 패밀리 중복인지 모순되는지 여부를 결정하십시오. 로서 예, 주어진여기서 x 4 및 x 14여기서x는 B- 트리 색인입니다 열, B- 트리에 왼쪽Amrescan첫 번째를 깨닫기 위해 기능합니다 토토 핫 키는 중복되어 버릴 수 있습니다. 의 범위 전처리가 필요합니다Amrescan의 정도에 따라 다릅니다 인덱스 액세스 방법은 토토 핫 키를 a로 줄여야합니다."정규화"양식.

일부 액세스 방법은 잘 정의 된 토토 핫 항목을 반환합니다 주문, 다른 사람은 그렇지 않습니다. 실제로 두 가지 다른 방법이 있습니다 액세스 방법은 정렬 된 출력을 지원할 수 있습니다.

  • 항상 자연에서 항목을 반환하는 액세스 방법 데이터 주문 (예 : btree)이 설정해야합니다PG_AM.amcanordertrue. 현재 그러한 액세스 방법은 Btree 호환 전략 번호를 사용해야합니다 평등 및 질서 운영자.

  • 주문 운영자를 지원하는 액세스 방법을 설정해야합니다PG_AM.amcanorderByoptrue. 이것은 나타납니다 지수가 순서대로 항목을 반환 할 수 있음 만족주문 by index_key 운영자 Constant. 해당 양식의 수정자를 토토 핫하십시오 전달 될 수 있습니다AmrescanAS 앞에서 설명합니다.

theamgettuple함수는방향인수, 어느 쪽이든ForwardScandirection(정상적인 경우) 또는BackwardsCandirection. 첫 번째 경우 전화 후Amrescan지정BackwardsCandirection일치하는 인덱스 항목은 정상적인 전면 방향으로AmgetTuple마지막 일치하는 튜플을 반환해야합니다 토토 핫에서, 평소와 같이 첫 번째 것보다는. (이것은 설정된 액세스 방법에 대해서만 발생합니다amcanorderto true.) 첫 번째 호출 후AmgetTuple준비해야합니다 가장 최근에서 스캔을 어느 방향 으로든 전진 반환 된 항목. (하지만PG_AM.Amcanbackward는 거짓이며 모든 후속 호출입니다 첫 번째 방향과 같은 방향을 가질 것입니다.)

순서 토토 핫을 지원하는 액세스 방법은 지원해야합니다"마킹"토토 핫의 위치 및 나중에 표시된 위치로 돌아갑니다. 같은 위치가 가능할 수도 있습니다 여러 번 복원됩니다. 그러나 하나의 위치 만 있으면됩니다 토토 핫 당 기억; 새로운ammarkposCall은 이전에 표시된 것을 무시합니다 위치. 순서 토토 핫을 지원하지 않는 액세스 방법 여전히 마크를 제공해야합니다.PG_AM, 그러나 그들을 던지기에 충분합니다 호출 된 오류.

토토 핫 위치와 마크 위치 (있는 경우) 모두 동시 삽입에 직면하여 일관되게 유지됩니다 색인의 삭제. 새로 삽입 된 항목이 있으면 괜찮습니다 입력을 찾은 토토 핫으로 반환되지 않음 토토 핫이 시작되었을 때 또는 토토 핫이 그러한 구출되거나 백업시 입장 처음으로 돌아 왔습니다. 마찬가지로 동시 삭제 토토 핫 결과에 반영 될 수도 있고 없을 수도 있습니다. 무엇인가요 삽입 또는 삭제가 토토 핫을 유발하지 않는다는 것입니다. 그 자체가 아닌 리턴 항목을 놓치거나 곱하기 삽입 또는 삭제.

인덱스가 원래 인덱스 데이터 값을 저장하는 경우 ( 그들에 대한 약간의 손실 표현), 지원하는 것이 유용합니다. 인덱스 전용 토토 핫은 인덱스가 실제 데이터를 반환하지 않습니다. 힙 튜플의 핵심. 이것은 단지 작동하는 경우에만 작동합니다 가시성 맵은 TID가 모두 가시 가능한 페이지에 있음을 보여줍니다. 또 다른 MVCC 가시성을 확인하려면 힙 튜플을 방문해야합니다. 그러나 그것은 액세스 방법의 관심이 아닙니다.

사용하는 대신amgettuple, an 인덱스 토토 핫을 수행 할 수 있습니다AmgetBitMap한 번의 전화로 모든 튜플을 가져 오려면. 이것은보다 눈에 띄게 더 효율적일 수 있습니다.amgettuple피할 수 있기 때문입니다 액세스 방법 내에서 사이클을 잠그기/잠금 해제합니다. 원칙적으로AmgetBitMap동일해야합니다 반복되는 효과amgettuple호출이지만 문제를 단순화하기위한 몇 가지 제한을 부과합니다. 가장 먼저,AmgetBitMap반환 한 번에 모든 튜플 및 토토 핫 위치를 표시하거나 복원하는 것은 아닙니다. 지원. 둘째, 튜플은 비트 맵으로 반환됩니다 특정 주문이 없기 때문에AmgetBitMapa방향인수. (주문 운영자는 절대 절대하지 않을 것입니다 그러한 스캔을 위해 공급됩니다.) 또한 조항이 없습니다. 인덱스 전용 스캔 용AmgetBitMap, 돌아올 방법이 없기 때문에 토토 핫 튜플의 내용. 마지막으로,AmgetBitMap잠금을 보장하지 않습니다 반환 된 튜플,섹션 52.4.

액세스 방법으로 구현할 수 있습니다. 오직AmgetBitMap그리고 아님AmgetTuple또는 그 반대의 경우 내부 구현은 하나의 API 또는 다른 API에 적합하지 않습니다.