62.1. 색인을위한 기본 API 구조#

각 스포츠 토토 액세스 방법은의 행으로 설명됩니다.PG_AM시스템 카탈로그. 그만큼PG_AM항목 이름과 A를 지정합니다핸들러 기능스포츠 토토 액세스 방법의 경우. 이 항목은를 사용하여 생성 및 삭제할 수 있습니다.액세스 방법 만들기드롭 액세스 방법SQL 명령.

스포츠 토토 액세스 메소드 핸들러 함수는 유형의 단일 인수를 수락하도록 선언해야합니다내부그리고 의사 유형을 반환하려면index_am_handler. 인수는 핸들러 기능이 SQL 명령에서 직접 호출되는 것을 방지하는 데 도움이되는 더미 값입니다. 함수의 결과는 palloc'd 유형의 구조 여야합니다indexamroutine9319_9426indexamroutinestruct, Access Method 's라고도합니다api struct, 액세스 방법의 다양한 고정 특성을 지정하는 필드, 예를 들어 다중 컬럼 인덱스를 지원할 수 있는지 여부와 같은 필드가 포함되어 있습니다. 더 중요한 것은 액세스 방법에 대한 모든 작업을 수행하는 액세스 방법에 대한 기능을 지원하는 포인터가 포함되어 있다는 것입니다. 이러한 지원 기능은 일반 C 기능이며 SQL 레벨에서는 보이거나 호출 할 수 없습니다. 지원 기능은에 설명되어 있습니다.PostgreSQL : 문서 : 17 : 62.2. 색인 액세스 토토 사이트 추천 기능.

구조indexamroutine따라서 정의됩니다.

typedef struct indexamroutine

    nodetag 유형;

    /*
     * 우리가 트래버스/검색 할 수있는 총 전략 수 (운영자)
     *이 오전.  AM에 고정 된 전략 할당 세트가없는 경우 0.
     */
    UINT16 AMSTROCTIONS;
    / *이 AM이 사용하는 총 지원 기능 수 */
    UINT16 amsupport;
    / * opclass 옵션 지원 기능 번호 또는 0 */
    UINT16 AMOPTSPROCNUM;
    /* 색인 된 열의 값으로 주문이 지원됩니까? */
    BOOL AMCANORDER;
    /* 인덱스 열에서 연산자의 결과로 주문을 지원합니까? */
    BOOL AMCANORDERBYOP;
    /* 후진 스캔을 지원합니까? */
    Bol Amcanbackward;
    /* 고유 인덱스를 지원합니까? */
    부리 암 카나 니크;
    /* 다중 열 인덱스를 지원합니까? */
    BOOL AMCANMULTICOL;
    /* 첫 번째 인덱스 열에 스캔이 제약을 받으려면 스캔이 필요합니까? */
    bool amoptionalkey;
    /* scalararrayopexpr quals를 처리합니까? */
    BOOL AMSEARCHARRAY;
    /* 손잡이가 null/is null quals가 아닌가? */
    BOOL AMSEARCHNULLS;
    /* 색인 스토리지 데이터 유형이 열 데이터 유형과 다를 수 있습니까? */
    부리 암스토라;
    /*이 유형의 인덱스를 클러스터링 할 수 있습니까? */
    bool amclusterable;
    /* 술어 잠금 장치를 처리합니까? */
    BOOL AMPREDLOCKS;
    /* 병렬 스캔을 지원합니까? */
    BOOL AMCANPARALLEL;
    /* 병렬 빌드를 지원합니까? */
    BOOL AMCANBUILDPARALLEL;
    /* 조항에 포함 된 지원 열에 포함되어 있습니까? */
    bool amcaninclude;
    /* AM MAINGENTENCE_WORK_MEM을 사용합니까? */
    bool amusemainenage workmem;
    /* 적어도 블록에있는 모든 튜플이있는 튜플을 요약합니다.
     * 한 요약에 요약 */
    부리 앰스 미화;
    / * 또는 평행 진공 플래그 */
    UINT8 AMPARALLELVACUUMOPTIONS;
    / * 인덱스에 저장된 데이터 유형 또는 변수 인 경우 Invalidoid */
    OID AMKEYTEPE;

    / * 인터페이스 함수 */
    Ambuild_function Ambuild;
    Ambuildempty_function Ambuildempty;
    aminsert_function aminsert;
    aminsertcleanup_function aminsertcleanup;
    Ambulkdelete_function Ambulkdelete;
    amvacuumcleanup_function amvacuumcleanup;
    amcanreturn_function amcanreturn;   / *는 널가 될 수 있습니다 */
    amcostestimate_function amcostestestimate;
    amoptions_function amoptions;
    amproperty_function amproperty;     / *는 널가 될 수 있습니다 */
    Ambuildphasename_function Ambuildphasename;   / *는 널가 될 수 있습니다 */
    amvalidate_function amvalidate;
    amadjustmembers_function amadjustmembers; / *는 널가 될 수 있습니다 */
    Ambeginscan_function Ambeginscan;
    Amrescan_function Amrescan;
    amgettuple_function amgettuple;     / *는 널가 될 수 있습니다 */
    AmgetBitMap_function AmgetBitMap;   / *는 널가 될 수 있습니다 */
    emendscan_function amendscan;
    ammarkpos_function ammarkpos;       / *는 널가 될 수 있습니다 */
    amrestros_function amrestrost;     / *는 널가 될 수 있습니다 */

    / * 병렬 인덱스 스캔을 지원하기위한 인터페이스 기능 */
    AmestimateParallelscan_function AmestimateParallelscan;    / *는 널가 될 수 있습니다 */
    aminitparallelscan_function aminitparallelscan;    / *는 널가 될 수 있습니다 */
    amparallelrescan_function amparallelrescan;    / *는 널가 될 수 있습니다 */
 indexAmroutine;

유용하려면 스포츠 토토 액세스 방법에 하나 이상이 있어야합니다운영자 가족and운영자 클래스정의pg_opfamily, pg_opclass, pg_amoppg_amproc. 이 항목을 통해 플래너는이 액세스 방법의 인덱스와 함께 어떤 종류의 쿼리 자격을 사용할 수 있는지 결정할 수 있습니다. 운영자 가족과 수업은에 설명되어 있습니다.PostgreSQL : 문서 : 17 : 36.16. 토토 사이트 추천에 대한 확장 인터페이스,이 장을 읽기위한 전제 조건 자료입니다.

개별 색인은 a에 의해 정의됩니다.pg_class그것을 물리적 관계로 묘사하는 항목, 그리고 Apg_index인덱스의 논리적 내용, 즉 관련 연산자 클래스에서 캡처 한대로 인덱스의 논리적 내용, 즉 인덱스 열 세트 및 해당 열의 의미를 보여줍니다. 인덱스 열 (키 값)은 기본 테이블의 간단한 열이거나 테이블 행의 표현 일 수 있습니다. 인덱스 액세스 방법은 일반적으로 인덱스 키 값이 어디에서 나오는 지에 관심이 없지만 (항상 미리 계산 된 키 값이 적용됨)의 운영자 클래스 정보에 매우 관심이 있습니다.pg_index. 이 카탈로그 항목 모두의 일부로 액세스 할 수 있습니다.관계인덱스의 모든 작업에 전달되는 데이터 구조.

일부 깃발 필드indexamroutine끔찍한 의미가 있습니다. 의 요구 사항AmcanuniquePostgreSQL : 문서 : 17 : 62.5. 토토 사이트 순위 고유성 점검. 그만큼Amcanmulticol플래그는 액세스 방법이 멀티 키 컬럼 인덱스를 지원한다고 주장합니다.AmoptionalKey첫 번째 스포츠 토토 열에 대한 스포츠 토토 가능한 제한 조항이없는 경우 스캔을 허용한다고 주장합니다. 언제Amcanmulticol거짓,amoptionalkey본질적으로 액세스 방법이 제한 조항없이 전체 인덱스 스캔을 지원하는지 여부를 말합니다. 다중 인덱스 열을 지원하는 액세스 방법필수첫 번째 열 후에 일부 또는 모든 열에서 제한을 생략하는 스캔을 지원합니다. 그러나 첫 번째 인덱스 열에 약간의 제한이 표시되도록 허용되며, 이는 설정에 따라 신호를받습니다.AmoptionalKey거짓. 색인이 하나의 이유am할 수 있습니다AmoptionalKey거짓은 null 값을 색인하지 않으면입니다. 대부분의 스포츠 토토 가능한 연산자는 엄격하므로 NULL 입력에 대해 TRUE를 반환 할 수 없으므로 NULL 값에 대한 스포츠 토토 항목을 저장하지 않는 것이 매력적입니다. 어쨌든 스포츠 토토 스캔으로 반환 할 수 없습니다. 그러나 스포츠 토토 스캔에 주어진 스포츠 토토 열에 대한 제한 조항이 없을 때이 인수는 실패합니다. 실제로 이것은를 가지고 있음을 의미합니다.amoptionalkeytrue는 널 인덱스 널을 인덱싱해야합니다. 플래너는 스캔 키가 전혀없는 인덱스를 사용하기로 결정할 수 있기 때문입니다. 관련 제한은 여러 인덱스 열을 지원하는 인덱스 액세스 방법입니다.필수지원 인덱스 인덱스 널 값은 첫 번째 열에 열에서 널 값을 유지합니다. 플래너는이 열을 제한하지 않는 쿼리에 인덱스를 사용할 수 있기 때문입니다. 예를 들어 (a, b)에 대한 색인과 쿼리를 고려하십시오.여기서 a = 4. 시스템은 스포츠 토토가로 행을 스캔하는 데 사용될 수 있다고 가정합니다.a = 4, 스포츠 토토가 행을 생략하면B그러나 첫 번째 스포츠 토토 된 열이 null 인 행을 생략해도 괜찮습니다. 색인 널을 사용하는 스포츠 토토 액세스 방법도 설정 될 수 있습니다amsearchnulls, 그것이 지원한다는 것을 나타냅니다is nullandnull이 아닙니다검색 조건으로 조항.

theamcaninclude플래그는 액세스 메소드가 지원되는지를 나타냅니다.포함열은 키 열을 넘어서 추가 열을 (처리하지 않고) 저장할 수 있습니다. 앞 단락의 요구 사항은 주요 열에만 적용됩니다. 특히의 조합Amcanmulticol=거짓andamcaninclude=True합리적입니다 : 하나의 키 열만있을 수 있지만 열이 포함될 수 있음을 의미합니다. 또한 포함 된 열은 독립적으로 무효가되어야합니다.amoptionalkey.

theamsummarizing플래그는 액세스 방법이 스포츠 토토 된 튜플을 요약하는지 여부를 나타냅니다. 개별 튜플을 가리키지 않고 범위를 차단하는 액세스 방법 (예 :브린), 허용hot계속하기위한 최적화. 이것은 색인 predicates에서 참조 된 속성에 적용되지 않으며, 그러한 속성의 업데이트는 항상 비활성화hot.

정정 제출

문서에 올바른 것이없는 것이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면