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

57.4. 진 팁 그리고 트릭

생성 및 삽입

a에 삽입색인 많은 키가 삽입될 가능성으로 인해 속도가 느려질 수 있습니다. 각 항목. 따라서 테이블에 대량으로 삽입하려면 다음을 수행하는 것이 좋습니다. GIN 인덱스를 삭제하고 대량 작업을 마친 후 다시 생성합니다. 삽입.

현재포스트그레SQL8.4, 이 지연된 인덱싱이 사용되므로 조언이 덜 필요합니다(참조섹션 57.3.1자세한 내용은). 그러나 매우 큰 업데이트의 경우 여전히 그럴 수 있습니다. 인덱스를 삭제하고 다시 생성하는 것이 가장 좋습니다.

maintenance_work_mem

a를 위한 빌드 시간색인은 에 매우 민감함maintenance_work_mem설정; 색인을 작성하는 동안 작업 메모리를 인색하는 것은 비용이 들지 않습니다. 창조.

work_mem

기존 항목에 일련의 삽입 중다음을 가진 색인빠른 업데이트활성화되면 시스템이 목록이 다음보다 커질 때마다 보류 항목 목록work_mem. 관찰된 반응의 변동을 방지하려면 시간이 지나면 보류 목록 정리가 다음에서 발생하는 것이 바람직합니다. (즉, autovacuum을 통해) 전경 정리 작업 증가시켜 피할 수 있습니다.work_mem또는 autovacuum을 더욱 공격적으로 만듭니다. 그러나 확대하면work_mem즉, 전경 정리가 발생하면 시간이 더 오래 걸립니다.

gin_fuzzy_search_limit

개발의 주요 목표색인은 다음을 위한 지원을 만드는 것이었습니다. 확장 가능한 전체 텍스트 검색포스트그레SQL, 종종 상황이 있습니다. 전체 텍스트 검색에서 매우 큰 결과 집합이 반환되는 경우. 더욱이 이는 쿼리에 매우 자주 포함되는 경우에 자주 발생합니다. 즉, 큰 결과 집합은 유용하지도 않습니다. 이후 디스크에서 많은 튜플을 읽고 정렬하는 데 많은 시간이 걸릴 수 있습니다. 시간이 지나면 이는 생산에 허용되지 않습니다. (인덱스는 검색 자체는 매우 빠릅니다.)

그러한 쿼리의 제어된 실행을 용이하게 하기 위해,구성 가능한 소프트가 있습니다 반환되는 행 수의 상한:gin_fuzzy_search_limit구성 매개변수. 그것 기본적으로 0(제한 없음을 의미)으로 설정됩니다. 0이 아닌 한계가 있는 경우 집합이면 반환된 집합은 전체 결과 집합의 하위 집합입니다. 무작위로 선택되었습니다.

"소프트"실제 숫자를 의미합니다. 반환된 결과의 수가 지정된 제한과 다소 다를 수 있습니다. 쿼리와 시스템의 무작위 품질에 따라 숫자 생성기.

경험상 수천 단위의 값(예: 5000 - 20000) 잘 해라.