65.4. 구현

65.4.1. GiST 인덱스 구축 방법

GiST 인덱스를 구축하는 가장 간단한 방법은 모든 항목을 하나씩 삽입하는 것입니다. 인덱스 튜플이 인덱스 전체에 분산되어 있고 인덱스가 캐시에 맞지 않을 만큼 큰 경우 많은 임의 I/O가 필요하기 때문에 큰 인덱스의 경우 속도가 느려지는 경향이 있습니다.포스트그레SQLGiST 인덱스의 초기 빌드를 위한 두 가지 대체 방법을 지원합니다:정렬그리고버퍼됨모드.

정렬된 방법은 색인에 사용된 각 opclass가 다음을 제공하는 경우에만 사용할 수 있습니다.정렬지원함수, 다음에 설명된 대로와이즈 토토 PostgreSQL : 문서 : 14 : 65.3. 확장 성. 그렇다면 일반적으로 이 방법이 가장 적합하므로 기본적으로 사용됩니다.

버퍼링된 방법은 튜플을 인덱스에 바로 삽입하지 않는 방식으로 작동합니다. 순서가 지정되지 않은 데이터 세트에 필요한 임의 I/O 양을 대폭 줄일 수 있습니다. 잘 정렬된 데이터 세트의 경우 이점은 더 작거나 존재하지 않습니다. 한 번에 소수의 페이지만 새 튜플을 수신하고 인덱스 전체가 그렇지 않더라도 해당 페이지가 캐시에 맞기 때문입니다.

버퍼링된 메소드는 다음을 호출해야 합니다.페널티추가 CPU 리소스를 소비하는 간단한 방법보다 더 자주 작동합니다. 또한 버퍼에는 결과 인덱스 크기까지 임시 디스크 공간이 필요합니다. 버퍼링은 결과 인덱스의 품질에 긍정적인 방향과 부정적인 방향 모두에 영향을 미칠 수도 있습니다. 그 영향은 입력 데이터의 분포 및 연산자 클래스 구현과 같은 다양한 요인에 따라 달라집니다.

정렬이 불가능할 경우 기본적으로 GiST 인덱스 빌드는 인덱스 크기에 도달하면 버퍼링 방법으로 전환됩니다.유효_캐시_크기. 버퍼링은 다음을 통해 수동으로 강제하거나 방지할 수 있습니다.버퍼링11176_11352

수정사항 제출

문서에 올바르지 않은 내용이 있으면 일치하지 않습니다. 특정 기능에 대한 경험이 있거나 추가 설명이 필요한 경우 이용해주세요이 양식문서 문제를 보고합니다.