| PostgreSQL 9.2.24 문서 | ||||
|---|---|---|---|---|
| 윈 토토 : 문서 : 9.2 : Extensibility | 스포츠 토토 : 문서 : 9.2 : 진 인덱스 | 55장. GIN 지수 | 무지개 토토 : 문서 : 9.2 : 진 팁 및 요령 | |
내부적으로, a진색인 키에 대해 구성된 B-트리 인덱스를 포함합니다. 여기서 각 키는 하나 이상의 인덱싱된 항목의 요소(배열의 멤버, 예를 들어) 리프 페이지의 각 튜플에는 다음 중 하나가 포함됩니다. 힙 포인터의 B-트리에 대한 포인터(a"게시 트리") 또는 간단한 힙 포인터 목록 (a"게시 목록") 목록이 다음과 같은 경우 키와 함께 단일 인덱스 튜플에 들어갈 만큼 작습니다. 값.
현재포스트그레SQL9.1, NULL
키 값은 인덱스에 포함될 수 있습니다. 또한 자리 표시자 NULL
NULL이거나 인덱싱된 항목의 인덱스에 포함됩니다.
에 따라 키가 포함되어 있지 않습니다.추출값. 이를 통해 다음과 같은 검색이 가능합니다.
그렇게 하려면 빈 항목을 찾으세요.
다중 열진색인은 복합 값에 대해 단일 B-트리를 구축하여 구현됨 (열 번호, 키 값). 다양한 열의 키 값 다양한 유형이 있을 수 있습니다.
업데이트 중진색인 거꾸로 된 본질적인 특성 때문에 느린 경향이 있습니다. 인덱스: 하나의 힙 행을 삽입하거나 업데이트하면 여러 개의 힙 행이 발생할 수 있습니다. 인덱스에 삽입합니다(에서 추출된 각 키에 대해 하나씩). 인덱싱된 항목). 현재포스트그레SQL 8.4, 진이것의 대부분을 연기할 수 있습니다 정렬되지 않은 임시 목록에 새 튜플을 삽입하여 작업합니다. 보류 중인 항목입니다. 테이블을 진공청소하거나 보류 중인 경우 목록이 너무 커짐(보다 큼)work_mem), 항목이 기본으로 이동됩니다.진동일한 대량을 사용하는 데이터 구조 초기 인덱스 생성 중에 사용되는 삽입 기술. 이 크게 향상됨진색인 추가 진공 오버헤드도 계산하여 업데이트 속도를 높입니다. 또한 오버헤드 작업은 백그라운드 프로세스를 통해 수행될 수 있습니다. 포그라운드 쿼리 처리 대신에.
이 접근 방식의 가장 큰 단점은 검색이 검색 외에도 보류 중인 항목 목록을 검색합니다. 일반 인덱스이므로 대기 중인 항목이 많으면 속도가 느려집니다. 크게 검색합니다. 또 다른 단점은 반면 대부분의 업데이트는 빠르며 보류 목록을 발생시키는 업데이트입니다. 되다"너무 큽니다"이 발생합니다 즉각적인 정리 주기로 인해 다른 것보다 훨씬 느립니다. 업데이트. Autovacuum을 적절하게 사용하면 이 두 가지를 모두 최소화할 수 있습니다. 문제.
업데이트보다 일관된 응답 시간이 더 중요하다면 속도를 늦추면 보류 중인 항목 사용을 비활성화할 수 있습니다.빠른 업데이트a에 대한 저장 매개변수진색인. 참조색인 생성자세한 내용은.
GIN이 지원할 수 있습니다"부분 일치"쿼리가 정확한 일치를 결정하지 못하는 쿼리
하나 이상의 키에 대해 가능한 일치 항목은
상당히 좁은 범위의 키 값(키 정렬 내에서)
에 의해 결정된 순서비교지원 방법).추출쿼리메소드는 정확히 일치하는 키 값을 반환하는 대신,
범위의 하한인 키 값을 반환합니다.
검색하고 설정합니다.pmatch플래그
사실. 그런 다음 키 범위는를 사용하여 스캔됩니다.비교부분방법.비교부분다음에 대해 0을 반환해야 합니다.
일치하는 인덱스 키, 일치하지 않는 경우 0보다 작음
여전히 검색할 범위 내에 있거나 0보다 큰 경우
인덱스 키가 일치할 수 있는 범위를 벗어났습니다.