Postgres몇 가지를 제공합니다 인덱스 유형 : B- 트리, R- 트리 및 해시. 각 인덱스 유형이 더 많습니다 알고리즘으로 인해 특정 쿼리 유형에 적합합니다. 사용합니다. 기본적으로색인 생성명령은 B-Tree 지수를 생성합니다. 상황. 특히PostgresQuery Optimizer는 사용을 고려합니다 인덱스 된 열이 이 연산자 중 하나를 사용한 비교 :<, <=, =, =,
R- 트리 지수는 특히 공간 데이터에 적합합니다. 에게 R- 트리 색인 생성, 양식의 명령 사용
색인 생성이름on테이블RTREE 사용 (컬럼);Postgres쿼리 최적화기 인덱스 된 열이있을 때마다 R- 트리 인덱스 사용을 고려합니다. 이 연산자 중 하나를 사용한 비교에 관여합니다.<<, &<, &, , @, ~ =, &&(참조와이즈 토토 : 문서 : 7.1 : 기하학적 함수 및 연산자의미에 대해 이 운영자의.)
쿼리 최적화기는 언제든 해시 색인 사용을 고려합니다. 인덱스 된 열은를 사용하여 비교에 관여합니다.=운영자. 다음 명령은입니다 해시 색인을 만드는 데 사용됩니다 :
색인 생성이름on테이블해시 사용 (열);
참고 :해시의 제한된 유용성으로 인해 지수, B- 트리 지수는 일반적으로 해시 색인. 우리는 해시라는 충분한 증거가 없습니다 지수는 실제로 B- 트리보다 빠릅니다.=비교. 또한 해시 지수는 필요합니다 거친 자물쇠; 보다PostgreSQL :.
B-Tree 지수는 Lehman-Yao의 구현입니다 고소도 B- 트리. R- 트리 색인 방법이 구현됩니다 Guttman의 2 차 분할 알고리즘을 사용한 표준 R- 트리. 그만큼 해시 인덱스는 Litwin의 선형 해싱을 구현 한 것입니다. 우리 전적으로 사용 된 알고리즘은 액세스 방법은 완전히 역동적이며 최적화 될 필요가 없습니다. 주기적으로 (예를 들어, 정적 해시의 경우와 마찬가지로 액세스 방법).