인덱스 정의에 AN을 지정할 수 있습니다운영자 클래스인덱스의 각 열에 대해
색인 생성이름on테이블(열 opclass[, ...]);
운영자 클래스는 연산자가 해당 열에 대한 색인. 예를 들어, 유형의 B- 트리 색인int4사용int4_ops클래스; 이 운영자 클래스에는 포함됩니다 유형 값에 대한 비교 함수int4. 실제로 기본 연산자 클래스 열의 데이터 유형으로는 일반적으로 충분합니다. 의 요점 운영자 클래스를 갖는 것은 일부 데이터 유형의 경우 하나 이상의 의미있는 색인 동작이어야합니다. 예를 들어, 우리는 할 수 있습니다 절대 값으로 복잡한 수 데이터 유형을 정렬하고 싶습니다. 또는 진짜 부분. 우리는 두 연산자를 정의하여이를 수행 할 수 있습니다 데이터 유형에 대한 클래스 후 적절한 클래스를 선택합니다. 색인을 만들 때.
외에 일부 내장 연산자 클래스도 있습니다 기본값 :
운영자 클래스text_pattern_ops, varchar_pattern_ops, bpchar_pattern_ops및name_pattern_ops유형텍스트, varchar, char및이름각각. 의 차이 기본 연산자 클래스는 값을 비교한다는 것입니다. The The The The The The The The The The The The The Cather에 의해 엄격하게 로케일 별 콜레이션 규칙. 이것은 이러한 연산자로 만듭니다 패턴과 관련된 쿼리로 사용하기에 적합한 클래스 일치하는 표현식 (Like또는 posix 정규 표현식) 서버가 사용하지 않을 때 기준"C"로케일. 로서 예를 들어 A를 색인 할 수 있습니다.Varchar다음과 같은 열 :
test_table (col varchar_pattern_ops)에서 색인 test_index 만들기;
기본값으로 색인을 만들어야합니다. 평범한 쿼리를 원한다면 운영자 클래스 색인 사용 비교. 이러한 쿼리는를 사용할 수 없습니다.xxx_pattern_ops운영자 클래스. 동일한 열에서 여러 인덱스를 만들 수 있습니다. 다른 운영자 클래스와 함께. C 로케일을 사용하는 경우 당신은 필요하지 않습니다xxx_pattern_ops운영자 클래스, 기본 연산자 클래스가있는 인덱스가 사용 가능하기 때문에 C 로케일의 패턴 매칭 쿼리.
다음 쿼리는 정의 된 모든 연산자 클래스를 보여줍니다.
AM.AMNAME AS index_Method를 선택하십시오. opc.opcname as opclass_name입니다 PG_AM AM에서 PG_OPCLASS OPC 여기서 opc.opcamid = am.oid INDEX_METHOD, OPCLASS_NAME; 주문
각각에 포함 된 모든 연산자를 각각으로 표시하도록 확장 할 수 있습니다. 수업:
AM.AMNAME AS Index_Method, opclass_name으로서 opc.opcname, opr.oid :: regoperator opclass_operator PG_AM AM, PG_OPCLASS OPC, PG_AMOP AMOP, PG_OPERATOR OPR 여기서 opc.opcamid = am.oid 및 amop.amopClaid = opc.oid 및 amop.amopop = opr.oid INDEX_METHOD, OPCLASS_NAME, OPCLASS_OPERATOR; 주문