범퍼카 토토 9.0.23 문서 | ||||
---|---|---|---|---|
PostgreSQL : 문서 : 9.0 : 스포츠 토토 색인 | up | 11 장. 인덱스 | PostgreSQL : 문서 : 9.0 : 색인 사설 토토 사이트 검사 |
인덱스 정의는 an을 지정할 수 있습니다운영자 클래스인덱스의 각 열에 대해.
색인 생성이름on테이블(열 opclass[정렬 옵션] [, ...]);
운영자 클래스는 운영자가 해당 열에 대한 색인. 예를 들어, 유형의 B- 트리 색인int4사용int4_ops클래스; 이 운영자 클래스에는 포함됩니다 유형 값에 대한 비교 함수int4. 실제로 기본 연산자 클래스 열의 데이터 유형으로는 일반적으로 충분합니다. 주된 이유 운영자 클래스를 갖는 것은 일부 데이터 유형의 경우 하나 이상의 의미있는 색인 동작이어야합니다. 예를 들어, 우리는 할 수 있습니다 절대 값으로 복잡한 수 데이터 유형을 정렬하고 싶습니다. 또는 진짜 부분. 우리는 두 연산자를 정의하여이를 수행 할 수 있습니다 데이터 유형에 대한 클래스 후 적절한 클래스를 선택합니다. 색인을 만들 때. 연산자 클래스는 기본을 결정합니다 정렬 순서 (정렬 옵션을 추가하여 수정할 수 있습니다ASC/desc및/또는Nulls First/nulls 마지막).
외에 일부 내장 연산자 클래스도 있습니다 기본값 :
운영자 클래스text_pattern_ops, varchar_pattern_ops및bpchar_pattern_opsB- 트리 색인을 지원합니다 유형텍스트, varchar및char각각. 기본 연산자와의 차이 클래스는 값이 엄격하게 문자를 비교한다는 것입니다. 로케일-특이 적보다는 성격 Collation Rules. 이로 인해 이러한 운영자 클래스가 적합합니다 패턴 매칭 표현식과 관련된 쿼리로 사용합니다 (좋아요또는 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.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;의 주문