찾을 수있는 정보에서 그들은 모두 같은 문제를 해결합니다 - 배열 봉쇄 및 교차와 같은 더 복잡한 작업 (& &, @>, < @ 등). 그러나 나는 어느 쪽을 사용할지 또는 다른 쪽을 사용할 지에 대한 조언에 관심이있다.PostgreSQL : GIN 또는 GiST 인덱스?
- GIN 인덱스 조회가 약 3 배 빠른 GIST
- GIN 인덱스보다 GIST
- GIN 인덱스를 만드는 것보다 약 3 배 더 오래 걸릴 약 10 배 느린 같습니다 PostgreSQL documentation
이에 대한 몇 가지 정보를 가지고 GIST - GIN 인덱스보다 업데이트하는 것은 나는 내가 특히 것이된다 그러나 두에 - 세 가지 요점
보다 큰 배 메모리를 인덱스 크기 배급이 작아지기 시작할 때 성능에 영향이 있는지를 아는 것이 중요합니다. 인덱스 크기가 사용 가능한 메모리보다 훨씬 커집니다)? #postgresql IRC 채널에서 GIN이 모든 인덱스를 메모리에 유지해야한다고 들었습니다. 그렇지 않으면 B-Tree와는 달리 디스크에서 읽을 부분을 알지 못하기 때문에 효과가 없습니다. 특정 쿼리? 문제는 다음과 같을 것입니다.이 사실이 맞습니까? GiST에도 동일한 제한 사항이 있습니까? 이러한 인덱싱 알고리즘 중 하나를 사용할 때 알아야 할 다른 제한 사항이 있습니까?
이 측정치는 사용중인 PG 버전에 따라 다릅니다. 나는 hstore 칼럼에 대해 9.6.1의 테스트를 실행했고 다음과 같은 결과를 얻었다. GiST는 GIN보다 빌드하는데 4.1 배의 시간이 걸리고, 조회에는 약 170 배 느렸다. 당신이 인용 한 수치에 가깝지도 않습니다. – IamIC