PostgreSQL몇 가지를 제공합니다 인덱스 유형 : B- 트리, 해시, 요트 및 진. 각 인덱스 유형은 a를 사용합니다 다른 유형의 다른 유형에 가장 적합한 다른 알고리즘 쿼리. 기본적으로젠 토토 생성명령은 가장 일반적인 B-Tree 인덱스를 만듭니다 상황.
B- 트리는 할 수있는 데이터의 평등과 범위 쿼리를 처리 할 수 있습니다. 주문으로 정리하십시오. 특히PostgreSQL쿼리 플래너는 사용을 고려합니다 인덱스 된 열이 이 연산자 중 하나를 사용한 비교 :
< |
<= |
= |
= |
Optimizer는 쿼리에 B- 트리 젠 토토을 사용할 수도 있습니다. 패턴 일치 연산자 포함좋아요and~ if패턴은 일정하며입니다 문자열의 시작 부분에 고정 - 예를 들어col like 'foo%'또는col ~ '^foo'하지만col like '%bar'. 그러나 데이터베이스가 C 로케일을 사용하지 않으면 필요합니다. 지원하기 위해 특수 운영자 클래스로 인덱스를 작성하려면 패턴 매칭 쿼리의 인덱싱; 보다섹션 11.9아래. 그것은 또한 b-tree indexes를 사용할 수 있습니다ilikeand~*그러나 패턴이 시작된 경우에만 비 alphabetic 캐릭터, 즉 그렇지 않은 문자로 상단/소문자 변환의 영향을받습니다.
해시 인덱스는 간단한 평등 비교 만 처리 할 수 있습니다. 그만큼 쿼리 플래너는 인덱스 된 열은를 사용하여 비교에 관여합니다.=운영자. 다음 명령이 사용됩니다 해시 젠 토토 생성 :
젠 토토 생성이름on테이블해시 사용 (열);
주의 |
해시 인덱스 조작은 현재 월경되지 않았습니다 해시 인덱스는로 재건되어야 할 수도 있습니다.Reindex데이터베이스 충돌 후 기록되지 않은 변화였습니다. 또한 해시 인덱스의 변경 사항이 있습니다 스트리밍 또는 파일 기반 복제를 통해 복제되지 않습니다 초기 기본 백업 후에는 답변을 제공합니다. 이후에 사용하는 쿼리. 이러한 이유로 해시 인덱스 사용은 현재 낙담합니다. |
GIST 인덱스는 단일 종류의 젠 토토이 아니라 오히려 많은 인덱싱 전략이있는 인프라 구현할 수 있습니다. 따라서 특정 운영자와 함께 인덱싱에 따라 다수는 요지 인덱스가 다릅니다. 전략 (운영자 클래스). 로서 예,의 표준 분포PostgreSQLGIST 운영자 클래스 포함 지원하는 여러 2 차원 기하학적 데이터 유형의 경우 이 연산자를 사용하여 인덱스 된 쿼리 :
<< |
&< |
& |
<< | |
& <| |
| & |
| |
@ |
<@ |
~ = |
&& |
진 인덱스는 반전 인덱스로 값을 처리 할 수 있습니다. 예를 들어 하나 이상의 키를 포함합니다. GIST처럼 진이 할 수 있습니다 다양한 사용자 정의 인덱싱 전략 및 진 지수를 사용할 수있는 특정 연산자는 다양합니다. 인덱싱 전략에 따라 예를 들어, 표준 분포PostgreSQL1 차원 어레이에 대한 진 운영자 클래스가 포함되어 있습니다 이 연산자를 사용하여 인덱스 된 쿼리 지원 :
<@ |
@ |
= |
&& |