이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

53.3. 구현

내부적으로, a색인 키에 대해 구성된 B-트리 인덱스를 포함합니다. 여기서 각 키는 인덱스된 값의 요소(배열의 멤버, 예) 리프 페이지의 각 튜플은 포인터이거나 힙 포인터(PT, 게시 트리)를 통한 B-트리 또는 다음 목록 목록이 충분히 작은 경우 힙 포인터(PL, 게시 목록).

53.3.1. GIN 빠른 업데이트 기술

a 업데이트 중색인 거꾸로 된 본질적인 특성 때문에 느린 경향이 있습니다. 인덱스: 하나의 힙 행을 삽입하거나 업데이트하면 여러 개의 힙 행이 발생할 수 있습니다. 인덱스에 삽입합니다(에서 추출된 각 키에 대해 하나씩). 색인화된 값). 현재포스트그레SQL 8.4, 이것의 대부분을 연기할 수 있습니다 정렬되지 않은 임시 목록에 새 튜플을 삽입하여 작업합니다. 보류 중인 항목입니다. 테이블을 진공청소하거나 보류 중인 경우 목록이 너무 커짐(보다 큼)work_mem), 항목이 기본으로 이동됩니다.동일한 대량을 사용하는 데이터 구조 초기 인덱스 생성 중에 사용되는 삽입 기술. 이 크게 향상됨색인 추가 진공 오버헤드도 계산하여 업데이트 속도를 높입니다. 게다가 오버헤드는 백그라운드 프로세스로 수행될 수 있습니다. 포그라운드 쿼리 처리 대신에.

이 접근 방식의 가장 큰 단점은 검색이 반드시 수행되어야 한다는 것입니다. 검색 외에도 보류 중인 항목 목록을 검색합니다. 일반 인덱스이므로 대기 중인 항목이 많으면 속도가 느려집니다. 크게 검색합니다. 또 다른 단점은 반면 대부분의 업데이트는 빠르며 보류 목록을 발생시키는 업데이트입니다. 되다"너무 큽니다"발생합니다 즉각적인 정리 주기로 인해 다른 것보다 훨씬 느립니다. 업데이트. Autovacuum을 적절하게 사용하면 이 두 가지를 모두 최소화할 수 있습니다. 문제.

업데이트보다 일관된 응답 시간이 더 중요하다면 속도를 늦추면 보류 중인 항목 사용을 비활성화할 수 있습니다.빠른 업데이트a에 대한 저장 매개변수색인. 참조색인 생성자세한 내용은.

53.3.2. 부분 일치 알고리즘

GIN이 지원할 수 있습니다"부분 일치"쿼리가 정확한 일치를 결정하지 못하는 쿼리 하나 이상의 키에 대해 가능한 일치 항목은 상당히 좁은 범위의 키 값(키 정렬 내에서) 에 의해 결정된 순서비교지원 방법).추출쿼리메소드는 정확히 일치하는 키 값을 반환하는 대신, 범위의 하한인 키 값을 반환합니다. 검색하고 설정합니다.pmatch플래그 사실. 그런 다음 키 범위는를 사용하여 검색됩니다.비교부분방법.비교부분실제 값은 0을 반환해야 합니다. 일치, 여전히 범위 내에 있는 비일치의 경우 0보다 작습니다. 검색할 범위, 또는 인덱스 키가 다음인 경우 0보다 큽니다. 일치할 수 있는 범위를 벗어났습니다.