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

11.9. 운영자 클래스 및 운영자 가족

인덱스 정의는 an을 지정할 수 있습니다연산자 수업인덱스의 각 열에 대해.

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

운영자 클래스는 연산자가 해당 열에 대한 색인. 예를 들어, 유형의 B- 트리 색인int4사용int4_ops클래스; 이 운영자 클래스에는 포함됩니다 유형 값에 대한 비교 함수int4. 실제로 열 데이터 유형의 기본 연산자 클래스 일반적으로 충분합니다. 운영자 클래스가있는 주된 이유 일부 데이터 유형의 경우 둘 이상이있을 수 있습니다. 의미있는 색인 동작. 예를 들어, 정렬 할 수 있습니다 절대 값 또는 실제 부분에 의해 복잡한 수치 데이터 유형. 데이터 유형에 대한 두 개의 운영자 클래스를 정의하여이를 수행 할 수 있습니다. 인덱스를 만들 때 적절한 클래스를 선택합니다. 그만큼 운영자 클래스는 기본 정렬 순서를 결정합니다 (그러면 정렬 옵션을 추가하여 수정됩니다Collate, ASC/desc및/또는널 첫 번째/널 마지막).

외에 일부 내장 연산자 클래스도 있습니다 기본값 :

  • 운영자 클래스text_pattern_ops, varchar_pattern_opsbpchar_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;의 주문