색인 정의는 an을 지정할 수 있습니다토토 꽁 머니 클래스인덱스의 각 열에 대해
색인 생성이름
on테이블
(열
opclass
[(opclass_options
)] [정렬 옵션
] [, ...]);
토토 꽁 머니 클래스는 해당 열의 인덱스에서 사용하도록 연산자를 식별합니다. 예를 들어, 유형의 B- 트리 색인int4
사용int4_ops
클래스; 이 연산자 클래스에는 유형 값에 대한 비교 함수가 포함됩니다int4
. 실제로 열 데이터 유형의 기본 연산자 클래스로는 일반적으로 충분합니다. 토토 꽁 머니 클래스를 갖는 주된 이유는 일부 데이터 유형의 경우 하나 이상의 의미있는 색인 동작이있을 수 있기 때문입니다. 예를 들어, 복잡한 수 데이터 유형을 절대 값 또는 실제 부분별로 정렬 할 수 있습니다. 데이터 유형에 대한 두 개의 토토 꽁 머니 클래스를 정의한 다음 인덱스를 만들 때 적절한 클래스를 선택하여이를 수행 할 수 있습니다. 토토 꽁 머니 클래스는 기본 정렬 순서를 결정합니다 (정렬 옵션을 추가하여 수정할 수 있습니다Collate
, ASC
/desc
및/또는Nulls First
/널 마지막
).
기본 연산자 외에도 일부 내장 연산자 클래스가 있습니다.
토토 꽁 머니 클래스text_pattern_ops
, varchar_pattern_ops
및bpchar_pattern_ops
유형에 대한 B- 트리 색인 지원텍스트
, Varchar
및char
각각. 기본 연산자 클래스와의 차이점은 로케일 별 콜레이션 규칙에 따라 값을 문자별로 비교한다는 것입니다. 이로 인해 이러한 토토 꽁 머니 클래스는 패턴 매칭 표현식과 관련된 쿼리에 사용하기에 적합합니다 (Like
또는 POSIX 정규식) 데이터베이스가 표준을 사용하지 않는 경우“C”로케일. 예를 들어, 당신은 a를 색인 할 수 있습니다.Varchar
다음과 같은 열 :
test_table (col varchar_pattern_ops)에서 인덱스 테스트 _index 만들기;
평범한 쿼리를 원하는 경우 기본 연산자 클래스와 함께 인덱스를 생성해야합니다<
, <=
, 또는
=
인덱스 사용 비교. 이러한 쿼리는를 사용할 수 없습니다.
토토 꽁 머니 클래스. (일반 평등 비교는 이러한 연산자 클래스를 사용할 수 있습니다.) 다른 연산자 클래스와 동일한 열에서 여러 인덱스를 만들 수 있습니다. C 로케일을 사용하는 경우가 필요하지 않습니다.xxx
_pattern_ops
토토 꽁 머니 클래스, 기본 연산자 클래스가있는 인덱스는 C 로케일의 패턴 매칭 쿼리에 대해 사용할 수 있기 때문에xxx
_pattern_ops
다음 쿼리는 정의 된 모든 연산자 클래스를 보여줍니다.
AM.AMNAME AS index_Method를 선택하십시오. opclass_name으로서 opc.opcname, opc.opcintype :: regtype as indexed_type, is_default로 opc.opcdefault PG_AM AM에서 PG_OPCLASS OPC 여기서 opc.opcmethod = am.oid INDEX_METHOD, OPCLASS_NAME; 주문
토토 꽁 머니 클래스는 실제로 an이라는 더 큰 구조의 하위 집합 일뿐입니다.토토 꽁 머니 가족. 여러 데이터 유형이 유사한 동작을 갖는 경우, 교차 데이터 유형 연산자를 정의하고 인덱스로 작동하도록하는 것이 종종 유용합니다. 이렇게하려면 각 유형의 토토 꽁 머니 클래스는 동일한 운영자 제품군으로 그룹화되어야합니다. 크로스 타입 운영자는 가족의 구성원이지만 가족 내의 단일 수업과 관련이 없습니다.
이전 쿼리 의이 확장 된 버전은 운영자 제품군을 보여줍니다. 각 토토 꽁 머니 클래스는 다음과 같습니다.
AM.AMNAME AS Index_Method, 선택, 선택 opclass_name으로서 opc.opcname, opfamily_name으로서 opf.opfname, opc.opcintype :: regtype as indexed_type, is_default로 opc.opcdefault PG_AM AM, PG_OPCLASS OPC, PG_OPFAMILY OPF 여기서 opc.opcmethod = am.oid and opc.opcfamily = opf.oid INDEX_METHOD, OPCLASS_NAME; 주문
이 쿼리는 모든 정의 된 토토 꽁 머니 제품군과 각 제품군에 포함 된 모든 토토 꽁 머니를 보여줍니다.
AM.AMNAME AS Index_Method, opfamily_name으로서 opf.opfname, amop.amopop :: opfamily_operator로서의 regoperator PG_AM AM, PG_OPFAMILY OPF, PG_AMOP AMOP에서 여기서 opf.opfmethod = am.oid and amop.amopfamily = opf.oid INDEX_METHOD, OPFAMILY_NAME, OPFAMILY_OPERATOR;의 주문
PSQL명령이 있습니다\ dac
, \ daf
및\ dao
,이 쿼리의 약간 더 정교한 버전을 제공합니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면