포스트그레SQL여러 가지 제공 토토 결과 유형: B-트리, 해시, GiST 및 GIN. 각 토토 결과 유형은 다양한 유형에 가장 적합한 다양한 알고리즘 쿼리. 기본적으로는토토 결과 생성명령은 가장 일반적인 토토 결과에 맞는 B-트리 토토 결과를 생성합니다. 상황.
B-트리는 동등성 및 범위 쿼리를 처리할 수 있습니다. 어떤 순서로 정렬될 수 있는 데이터입니다. 특히,포스트그레SQL쿼리 플래너는 인덱스된 열이 있을 때마다 B-트리 인덱스 사용을 고려하십시오. 다음 연산자 중 하나를 사용하여 비교에 포함됩니다.
| < |
| <= |
| = |
| = |
최적화 프로그램은 쿼리에 B-트리 토토 결과를 사용할 수도 있습니다. 패턴 일치 연산자 관련좋아요그리고~ if패턴은 일정하며 문자열의 시작 부분에 고정됨(예:col LIKE 'foo%'또는col ~ '^foo'하지만 아님col LIKE '%bar'. 그러나 서버가 C 로케일을 사용하지 않는 경우에는 다음이 필요합니다. 지원할 특수 연산자 클래스를 사용하여 인덱스를 생성합니다. 패턴 일치 쿼리의 인덱싱. 보다섹션 11.8아래. 그것은 또한 B-트리 토토 결과를 사용할 수 있음좋아요그리고~*, 그러나 패턴이 시작되는 경우에만 해당 알파벳이 아닌 문자, 즉 알파벳이 아닌 문자 대문자/소문자 변환의 영향을 받습니다.
해시 토토 결과은 단순 동등성만 처리할 수 있습니다. 비교. 쿼리 플래너는 해시 인덱스 사용을 고려합니다. 인덱싱된 열이 비교에 포함될 때마다=연산자. 다음 명령은 해시 인덱스를 생성하는 데 사용됩니다.
토토 결과 생성이름ON테이블해시 사용 중 (열);
참고:테스트 결과가 나타났습니다포스트그레SQL13376_13635REINDEX데이터베이스 충돌 후. 이러한 이유로 해시 인덱스 사용은 현재는 낙담함.
GiST 인덱스는 단일 종류의 인덱스가 아니지만, 오히려 다양한 인덱싱이 가능한 인프라 전략을 실행할 수 있습니다. 이에 따라 특정 GiST 인덱스를 사용할 수 있는 연산자는 다음에 따라 다릅니다. 인덱싱 전략(the연산자 수업). 예를 들어, 표준 분포는포스트그레SQLGiST 포함 여러 2차원 기하학적 데이터에 대한 연산자 클래스 다음 연산자를 사용하여 색인화된 쿼리를 지원하는 유형입니다.
| << |
| &< |
| & |
| <<| |
| &<| |
| |& |
| | |
| @ |
| <@ |
| ~= |
| && |
GIN 인덱스는 다음을 처리할 수 있는 반전된 인덱스입니다. 두 개 이상의 키를 포함하는 값(예: 배열) 좋아요 GiST, GIN은 다양한 사용자 정의 인덱싱을 지원할 수 있습니다. 전략과 GIN 지수에 사용되는 특정 연산자 인덱싱 전략에 따라 다르게 사용될 수 있습니다. 로서 예를 들어, 표준 분포포스트그레SQL다음에 대한 GIN 연산자 클래스를 포함합니다. 이를 사용하여 인덱스 쿼리를 지원하는 1차원 배열 연산자:
| <@ |
| @ |
| = |
| && |