블룸
에 따라 배트맨 토토 액세스 방법을 제공합니다블룸 필터.
블룸 필터는 요소가 세트의 구성원인지 테스트하는 데 사용되는 공간 효율적인 데이터 구조입니다. 인덱스 액세스 방법의 경우 인덱스 생성에서 크기가 결정된 시그니처를 통해 일치하지 않는 튜플을 빠르게 제외 할 수 있습니다.
서명은 배트맨 토토 된 속성의 손실 된 표현이며, 따라서 허위 긍정을보고하기 쉽다. 즉, 요소가 세트에 있지 않은 것으로보고 될 수 있습니다.
이 유형의 인덱스는 테이블에 많은 속성이 있고 쿼리 테스트 임의 조합을 테스트 할 때 가장 유용합니다. 기존의 BTREE 지수는 블룸 인덱스보다 빠르지 만 단일 블룸 인덱스 만 필요한 모든 가능한 쿼리를 지원하기 위해 많은 BTREE 인덱스가 필요할 수 있습니다.
A 블룸
index는 다음 매개 변수를 수락합니다with
절 :
길이
비트로 각 서명의 길이 (인덱스 항목). 가장 가까운 배수의로 반올림됩니다.16
. 기본값은80
비트 및 최대 값은4096
.
col1 - col32
각 배트맨 토토 열에 대해 생성 된 비트 수. 각 매개 변수의 이름은 제어하는 배트맨 토토 열의 수를 나타냅니다.2
비트 및 최대 값은4095
. 실제로 사용되지 않은 배트맨 토토 열의 매개 변수는 무시됩니다.
이것은 블룸 색인 생성의 예입니다 :
bloom을 사용하여 tbloom에서 배트맨 토토 BloomIdx 생성 (i1, i2, i3)
인덱스는 80 비트의 시그니처 길이로 생성되며, I1 및 I2 속성은 2 비트에 매핑되었으며 I3은 4 비트에 매핑되었습니다. 우리는를 생략 할 수있었습니다.길이
, col1
및col2
기본값이 있기 때문에 사양.
다음은 Bloom Index 정의 및 사용에 대한보다 완전한 예와 동등한 BTREE 인덱스와의 비교를 제공합니다. Bloom Index는 Btree 지수보다 상당히 작으며 더 잘 수행 할 수 있습니다.
=# 테이블 tbloom을 생성합니다
이 큰 테이블을 순차적으로 스캔하는 데 시간이 오래 걸립니다 :
=# analyze analyze * 선택 * TBLOOM에서 i2 = 898732 및 i5 = 123451;
BTREE 지수가 정의 된 경우에도 결과는 여전히 순차적 인 스캔입니다.
=# tbloom에서 배트맨 토토 btreeIdx 생성 (i1, i2, i3, i4, i5, i6);
이 유형의 검색을 처리하는 데있어서 블룸 색인을 테이블에 정의하는 것보다 낫습니다.
=# bloom (i1, i2, i3, i4, i5, i6)을 사용하여 tbloom에서 배트맨 토토 BloomIdx 생성;
이제 BTREE 검색의 주요 문제는 검색 조건이 주요 배트맨 토토 열을 제한하지 않을 때 BTREE가 비효율적이라는 것입니다. Btree의 더 나은 전략은 각 열에서 별도의 배트맨 토토를 만드는 것입니다.
=# tbloom (i1)에서 배트맨 토토 btreeidx1을 만듭니다.
이 쿼리는 단일 색인 중 하나보다 훨씬 빠르지 만 인덱스 크기로 페널티를 지불합니다. 각 단일 열 Btree 지수는 88.5MB를 차지하므로 필요한 총 공간은 531MB이며 블룸 인덱스가 사용하는 공간의 3 배에 걸쳐
Bloom Indexes의 연산자 클래스에는 배트맨 토토 된 데이터 유형에 대한 해시 기능과 검색을위한 평등 연산자 만 필요합니다. 이 예제는에 대한 연산자 클래스 정의를 보여줍니다.텍스트
데이터 유형 :
운영자 클래스 텍스트 _OPS를 만듭니다
int4
and텍스트
모듈에 포함되어 있습니다.
만=
운영자는 검색을 위해 지원됩니다. 그러나 향후 노조 및 교차로 운영으로 배열에 대한 지원을 추가 할 수 있습니다.
블룸
액세스 방법은 지원하지 않습니다고유 한
배트맨 토토.
블룸
액세스 방법은 검색을 지원하지 않습니다null
값.
Teodor Sigaev<teodor@postgrespro.ru
, Postgres Professional, Moscow, 러시아
Alexander Korotkov<a.korotkov@postgrespro.ru
, Postgres Professional, Moscow, 러시아
Oleg Bartunov<obartunov@postgrespro.ru
, Postgres Professional, Moscow, 러시아
문서에 올바르지 않은 내용이 있으면 일치하지 않습니다.이 양식문서 문제를보고하려면