인덱스 정의가 an을 지정할 수 있습니다운영자 롤 토토인덱스의 각 열에 대해.
색인 생성이름on테이블(열 opclass[, ...]);
운영자 롤 토토는 해당 열에 대한 색인. 예를 들어, 유형의 B- 트리 색인int4사용int4_ops클래스; 이 운영자 롤 토토에는 포함됩니다 유형 값에 대한 비교 함수int4. 실제로 기본 연산자 클래스 열의 데이터 유형으로는 일반적으로 충분합니다. 의 요점 운영자 롤 토토를 갖는 것은 일부 데이터 유형의 경우 하나 이상의 의미있는 색인 동작이어야합니다. 예를 들어, 우리는 할 수 있습니다 절대 값으로 복잡한 수 데이터 유형을 정렬하고 싶습니다. 또는 진짜 부분. 우리는 두 연산자를 정의하여이를 수행 할 수 있습니다 데이터 유형에 대한 클래스 후 적절한 클래스를 선택합니다. 색인을 만들 때.
외에 일부 내장 연산자 롤 토토도 있습니다 기본값 :
운영자 롤 토토text_pattern_ops, varchar_pattern_ops, bpchar_pattern_ops및name_pattern_ops유형텍스트, Varchar, char및이름12179_12505좋아요또는 posix 정규 표현식) 서버가 표준을 사용하지 않는 경우"C"로케일. 예를 들어, 당신 a를 색인 할 수 있습니다.varchar열 같은 이것:
test_table (col varchar_pattern_ops)에서 색인 test_index 만들기;
C 로케일을 사용하는 경우 대신 기본 연산자 클래스와 인덱스를 사용하면 여전히 패턴 매칭 쿼리에 유용합니다. 또한 당신은 주목하십시오 기본 연산자 클래스와 함께 인덱스를 생성 해야하는 경우 인덱스를 사용하기 위해 일반 비교와 관련된 쿼리를 원합니다. 이러한 쿼리는를 사용할 수 없습니다.xxx_pattern_ops운영자 롤 토토. 동일한 열에서 여러 인덱스를 만들 수 있습니다. 다른 운영자 롤 토토와 함께.
다음 쿼리는 정의 된 모든 연산자 클래스를 보여줍니다.
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, opclass_operator로서 opr.oprname 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; 주문