이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 12.9. 텍스트 검색을위한 우선 토토 사이트 추천 유형버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

12.9. 무지개 토토 및 GIN 지수 유형

속도를 높이는 데 사용할 수 있는 두 종류의 인덱스가 있습니다. 전체 텍스트 검색. 인덱스는 전체에 필수는 아닙니다. 텍스트 검색이지만 열이 검색되는 경우 정기적으로 인덱스가 바람직합니다.

색인 생성이름켜짐테이블요점 사용();

무지개 토토(일반 검색 트리) 기반 색인을 생성합니다.다음 중 하나일 수 있음ts벡터또는tsquery유형.

색인 생성이름켜짐테이블진 사용();

GIN(Generalized Inverted Index) 기반 인덱스를 생성합니다.다음 중 하나여야 함ts벡터유형.

둘 사이에는 상당한 성능 차이가 있습니다. 인덱스 유형을 이해하는 것이 중요합니다. 특징.

무지개 토토 색인은손실, 즉 인덱스가 잘못된 일치를 생성할 수 있으므로 확인이 필요합니다. 그러한 잘못된 일치를 제거하기 위해 실제 테이블 행을 삭제합니다. (포스트그레SQL이것을 합니다 필요할 때 자동으로.) 무지개 토토 인덱스는 손실이 많습니다. 문서는 고정 길이 서명으로 인덱스에 표시됩니다. 서명은 각 단어를 단일 비트로 해싱하여 생성됩니다. n비트 문자열에서 이 모든 비트를 OR로 연결하여 생성합니다. n비트 문서 서명. 두 단어가 동일한 비트로 해시되는 경우 위치에 잘못된 일치가 있을 것입니다. 쿼리의 모든 단어가 일치하는 항목(실제 또는 거짓)이 있으면 테이블 행을 검색해야 합니다. 일치가 올바른지 확인하세요.

손실은 불필요한 작업으로 인해 성능 저하를 유발합니다. 잘못된 일치로 판명된 테이블 레코드를 가져옵니다. 이후 테이블 레코드에 대한 무작위 액세스가 느리기 때문에 무지개 토토 인덱스의 유용성. 잘못된 일치 가능성 여러 요인, 특히 고유한 사용자 수에 따라 달라집니다. 따라서 이 숫자를 줄이기 위해 사전을 사용하는 것은 추천합니다.

GIN 인덱스는 표준 쿼리에 대해 손실이 없지만 성능은 고유한 개수에 따라 대수적으로 달라집니다. 단어. (단, GIN 인덱스는 다음의 단어(어휘소)만 저장합니다.ts벡터가중치가 아닌 값 라벨. 따라서 쿼리를 사용할 때 테이블 행 재검사가 필요합니다. 여기에는 가중치가 포함됩니다.)

무지개 토토 또는 GIN 중에서 사용할 인덱스 유형을 선택할 때 다음을 고려하십시오. 이러한 성능 차이:

  • GIN 색인 조회는 이전보다 약 3배 빠릅니다. 무지개 토토

  • GIN 색인은 구축하는 데 약 3배 더 오래 걸립니다. 무지개 토토

  • GIN 인덱스는 무지개 토토보다 업데이트 속도가 약간 느립니다. 하지만 빠른 업데이트 지원이 적용되면 약 10배 느려집니다. 비활성화됨(참조섹션 55.3.1자세한 내용은)

  • GIN 인덱스는 무지개 토토보다 2~3배 더 큽니다. 인덱스

어림짐작으로 볼 때,색인은 조회가 더 빠르기 때문에 정적 데이터에 가장 적합합니다. 에 대한 동적 데이터인 경우 무지개 토토 인덱스가 업데이트 속도가 더 빠릅니다. 구체적으로,무지개 토토색인은 다음에 매우 좋습니다. 고유한 단어(어휘소)의 수가 100,000 미만, 반면색인은 100,000개 이상의 어휘를 더 잘 처리하지만 업데이트합니다.

참고하세요인덱스 빌드 시간을 늘리면 시간이 향상될 수 있습니다.maintenance_work_mem, 동안지스트색인 빌드 시간은 다음과 같습니다. 해당 매개변수에 민감하지 않습니다.

큰 컬렉션의 분할과 무지개 토토 및 GIN 인덱스를 사용하면 매우 빠른 검색을 구현할 수 있습니다. 온라인 업데이트. 데이터베이스 수준에서 파티셔닝을 수행할 수 있습니다. 테이블 상속을 사용하거나 문서를 분산하여 서버 및 다음을 사용하여 검색 결과를 수집합니다.dlink모듈. 후자가 가능하기 때문에 순위 기능은 지역 정보만 사용합니다.