| PostgreSQL 9.1.24 문서 | ||||
|---|---|---|---|---|
| 이전 | 위로 | 52장. 윈 토토 액세스 방법 인터페이스 정의 | PostgreSQL : 문서 : 9.1 : 토토 액세스 방법 함수 | |
각 색인 액세스 방법은 다음 행으로 설명됩니다.pg_am시스템 카탈로그(참조섹션 45.3). 주요 내용은 에pg_am행은 다음을 참조합니다.pg_proc색인을 식별하는 항목 액세스 메소드에 의해 제공되는 액세스 함수. API 이러한 함수는 이 장의 뒷부분에서 정의됩니다. 또한,pg_am행은 몇 가지 고정된 항목을 지정합니다. 지원 여부와 같은 액세스 방법의 속성 다중 열 인덱스. 현재 특별한 지원은 없습니다. 생성 또는 삭제용pg_am항목; 새로운 액세스 방법을 작성할 수 있는 사람은 누구나 적절한 행을 삽입할 수 있어야 합니다.
유용하려면 색인 액세스 방법에는 다음 중 하나가 있어야 합니다. 더 많은운영자 가족그리고연산자 클래스다음에 정의됨pg_opfamily, pg_opclass, pg_amop, 그리고pg_amproc. 이 항목을 사용하면 계획자가 어떤 종류의 쿼리 제한을 사용할 수 있는지 결정 이 액세스 방법의 인덱스입니다. 운영자 제품군 및 클래스는 다음과 같습니다. 설명됨롤 토토 PostgreSQL : 문서화 : 9.1 : 인덱스에 대한 인터페이스 확장입니다. 이 장을 읽기 위한 전제 자료입니다.
개별 색인은 다음에 의해 정의됩니다.pg_class물리적 관계로 설명하는 항목과 apg_index색인의 논리적 내용을 표시하는 항목, 즉 가지고 있는 인덱스 열 집합과 해당 열의 의미 연관된 연산자 클래스에 의해 캡처된 대로입니다. 인덱스 열 (키 값)은 기본 테이블의 단순 열일 수 있습니다. 또는 테이블 행에 대한 표현식입니다. 인덱스 액세스 방법 일반적으로 인덱스 키 값이 어디서 오는지 관심이 없습니다. (항상 미리 계산된 키 값이 전달됩니다) 그러나 매우 연산자 클래스 정보에 관심이 있습니다.pg_index. 이 두 카탈로그 항목은 모두 의 일부로 액세스됨관계데이터 윈 토토의 모든 작업에 전달되는 구조입니다.
일부 플래그 열pg_am명백하지 않은 의미가 있습니다. 요구 사항amcanunique다음에서 논의됩니다섹션 52.5.amcanmulticol플래그는 액세스가 메소드는 다중 열 인덱스를 지원하는 반면amOptionalkey스캔을 허용한다고 주장합니다. 첫 번째 항목에는 색인 생성 가능 제한 조항이 제공되지 않습니다. 윈 토토 열. 언제amcanmulticol이다 거짓,amOptionalkey본질적으로 액세스 방법이 전체 인덱스 스캔을 지원하는지 여부를 나타냅니다. 모든 제한 조항. 다중을 지원하는 액세스 방법 인덱스 열반드시열의 일부 또는 전체에 대한 제한 사항을 생략하는 스캔을 지원합니다. 첫 번째 이후; 그러나 그들은 일부를 요구하는 것이 허용됩니다 첫 번째 인덱스 열에 표시되는 제한 사항은 다음과 같습니다. 설정으로 표시됨amOptionalkey거짓. 윈 토토 AM이 설정할 수 있는 한 가지 이유amOptionalkeyfalse는 색인을 생성하지 않는 경우입니다. NULL. 대부분의 인덱싱 가능한 연산자는 엄격하므로 NULL 입력에 대해 TRUE를 반환하면 첫눈에 매력적입니다. null 값에 대한 인덱스 항목을 저장하지 않습니다. 어쨌든 인덱스 스캔에 의해 반환됩니다. 그러나 이 주장은 실패한다 인덱스 스캔에 특정 인덱스에 대한 제한 조항이 없는 경우 칼럼. 실제로 이는 다음과 같은 인덱스가 있음을 의미합니다.amOptionalkeytrue는 null을 색인화해야 합니다. 플래너는 스캔 키가 없는 인덱스를 사용하기로 결정할 수도 있습니다. 모두. 관련 제한 사항은 인덱스 액세스 방법이 여러 인덱스 열을 지원합니다반드시인덱싱 null 값 지원 첫 번째 열 이후에는 플래너가 index는 이러한 열을 제한하지 않는 쿼리에 사용할 수 있습니다. 예를 들어 (a,b)에 대한 인덱스와어디에서 a = 4. 시스템은 다음을 가정합니다. 인덱스는 다음을 사용하여 행을 검색하는 데 사용할 수 있습니다.a = 4, 색인이 행을 생략하는 경우 잘못된 것입니다.b널입니다. 그러나 다음과 같은 행을 생략하는 것은 괜찮습니다. 첫 번째 인덱스 열이 null입니다. 인덱스 액세스 방법은 인덱스 null도 설정할 수 있습니까amsearchnulls, 지원함을 나타냄NULL입니다그리고아님 NULL절을 검색 조건으로 사용합니다.