이 문서는 지원되지 않는 버전의 PostgreSQL을위한 것입니다.
당신은에 대해 같은 페이지를 보려고 할 수 있습니다PostgreSQL : 문서 : 17 : 11.10. 토토 결과 수업 및 토토 결과 가족버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

11.9. 운영자 사설 토토 및 운영자 가족

인덱스 정의는 an을 지정할 수 있습니다운영자 사설 토토인덱스의 각 열에 대해

색인 생성이름on테이블( opclass[정렬 옵션] [, ...]);

운영자 사설 토토는 연산자가 해당 열에 대한 색인. 예를 들어, 유형의 B- 트리 색인int4사용int4_ops클래스; 이 운영자 사설 토토에는 포함됩니다 유형 값에 대한 비교 함수int4. 실제로 기본 연산자 클래스 열의 데이터 유형으로는 일반적으로 충분합니다. 의 요점 운영자 사설 토토를 갖는 것은 일부 데이터 유형의 경우 하나 이상의 의미있는 색인 동작이어야합니다. 예를 들어, 우리는 할 수 있습니다 절대 값으로 복잡한 수 데이터 유형을 정렬하고 싶습니다. 또는 진짜 부분. 우리는 두 연산자를 정의하여이를 수행 할 수 있습니다 데이터 유형에 대한 클래스 후 적절한 클래스를 선택합니다. 색인을 만들 때. 연산자 클래스는 기본을 결정합니다 정렬 순서 (정렬 옵션을 추가하여 수정할 수 있습니다ASC/desc및/또는Nulls First/nulls 마지막).

외에 일부 내장 연산자 사설 토토도 있습니다 기본값 :

  • 운영자 사설 토토text_pattern_ops, varchar_pattern_ops, bpchar_pattern_opsname_pattern_ops유형텍스트, Varchar, char이름각각. 의 차이 기본 연산자 클래스는 값을 비교한다는 것입니다. The The The The The The The The The The The The The Cather에 의해 엄격하게 로케일 별 콜레이션 규칙. 이것은 이러한 연산자로 만듭니다 패턴과 관련된 쿼리로 사용하기에 적합한 클래스 일치하는 표현식 (좋아요또는 posix 정규 표현식) 서버가 사용하지 않을 때 기준"C"로케일. 로서 예를 들어 A를 색인 할 수 있습니다.Varchar다음과 같은 열 :

    test_table (col varchar_pattern_ops)에서 index 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.opcmethod = am.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;의 주문