내부, A진index는 키를 통해 구성된 B- 트리 색인이 포함되어 있으며 각 키는 하나 이상의 색인 된 항목 (예 : 배열 구성원)의 요소이며 잎 페이지의 각 튜플이 힙 포인터의 B- 트리에 대한 포인터를 포함합니다 (A“트리 게시”) 또는 힙 포인터의 간단한 목록 (a“게시 목록”) 목록이 키 값과 함께 단일 롤 토토 튜플에 맞을 정도로 작을 때.그림 67.1진 롤 토토의 이러한 구성 요소를 보여줍니다.
PostgreSQL9.1, 널 키 값이 인덱스에 포함될 수 있습니다. 또한 자리 표시 자 널은 널 또는 키가 포함 된 인덱스 품목에 대한 색인에 포함되어 있습니다.ExtractValue
. 이를 통해 빈 항목을 찾을 수있는 검색이 가능합니다.
멀티 컬럼진인덱스는 복합 값 (열 번호, 키 값)을 통해 단일 B- 트리를 구축하여 롤 토토됩니다. 다른 열의 핵심 값은 다른 유형 일 수 있습니다.
그림 67.1. 진부
a 업데이트진반전 롤 토토의 고유 특성으로 인해 롤 토토가 느려지는 경향이 있습니다. 하나의 힙 행을 삽입하거나 업데이트하면 많은 인서트가 롤 토토에 삽입 될 수 있습니다 (색인 항목에서 추출한 각 키마다 하나)..진는 새로운 튜플을 임시로 분류되지 않은 보류 항목 목록에 삽입 하여이 작업의 많은 부분을 연기 할 수 있습니다. 테이블이 진공 청소기 또는자가 분석 할 때 또는gin_clean_pending_list
함수가 호출되거나 보류중인 목록이보다 커지는 경우gin_pending_list_limit, 항목이 메인으로 이동진초기 롤 토토 생성 중에 사용되는 동일한 벌크 삽입 기술을 사용한 데이터 구조. 이것은 크게 향상됩니다진롤 토토 업데이트 속도, 추가 진공 오버 헤드를 계산하기도합니다. 또한 오버 헤드 작업은 전경 쿼리 처리 대신 백그라운드 프로세스로 수행 할 수 있습니다.
이 접근법의 주요 단점은 검색이 일반 색인을 검색하는 것 외에도 보류중인 항목 목록을 스캔해야하므로 보류중인 항목 목록이 크게 느려질 것입니다. 또 다른 단점은 대부분의 업데이트가 빠르지 만 보류중인 목록이되게하는 업데이트입니다.“너무 큰”즉시 정리주기가 발생하므로 다른 업데이트보다 훨씬 느려집니다. Autovacuum을 올바르게 사용하면이 두 가지 문제를 모두 최소화 할 수 있습니다.
일관된 응답 시간이 업데이트 속도보다 더 중요한 경우 보류중인 항목의 사용을 끄면 비활성화 할 수 있습니다Fastupdate
a 스토리지 매개 변수진색인. 보다색인 생성자세한 내용.
진은 지원할 수 있습니다“부분 경기”쿼리가 하나 이상의 키와 정확히 일치하지 않지만 가능한 일치는 합리적으로 좁은 키 값 범위 (에 의해 결정된 키 정렬 순서 내에서에 해당합니다.비교
지원 방법). 그만큼ExtractQuery
메소드는 정확히 일치 할 키 값을 반환하는 대신 검색 할 범위의 하한 인 키 값을 반환하고를 설정합니다.PMATCH
플래그 참. 그런 다음 키 범위가를 사용하여 스캔됩니다.비교 상점
메소드비교 상점
일치하는 롤 토토 키의 경우 0을 반환해야합니다. 검색 할 범위 내에있는 비 일치의 경우 0보다 적거나 롤 토토 키가 일치 할 수있는 범위를 지나면 0보다 큰 0보다 적습니다.
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면