theintarray
모듈은 널없는 스포츠 토토 베트맨를 조작하기위한 여러 가지 유용한 기능과 연산자를 제공합니다. 일부 연산자를 사용하여 인덱스 검색을 지원합니다.
제공된 배열에 널 요소가 포함 된 경우 이러한 모든 작업에 오류가 발생합니다.
이러한 작업 중 다수는 1 차원 배열에만 합리적입니다. 더 많은 치수의 입력 배열을 수락하지만 데이터는 스토리지 순서의 선형 배열 인 것처럼 취급됩니다.
이 모듈이 고려됩니다“신뢰할 수있는”Create
현재 데이터베이스의 권한.
intarray
기능 및 연산자#intarray
모듈에 표시테이블 F.8, 연산자테이블 F.9.
표 F.8. intarray
기능
표 F.9. intarray
연산자
운영자 설명 |
---|
어레이 오버랩 (적어도 하나의 요소가있는)? |
왼쪽 배열이 오른쪽 배열을 포함합니까? |
오른쪽 배열에 포함되어 있습니까? |
배열의 요소 수를 반환합니다. |
올바른 인수와 일치하는 첫 번째 배열 요소의 인덱스를 반환하거나 일치하지 않으면 0. (동일 |
배열 끝에 요소를 추가합니다. |
배열을 연결합니다. |
배열에서 올바른 인수와 일치하는 항목을 제거합니다. |
왼쪽 배열에서 오른쪽 배열의 요소를 제거합니다. |
논증의 조합을 계산합니다. |
논증의 조합을 계산합니다. |
인수의 교차점을 계산합니다. |
배열은 쿼리를 만족합니까? (아래 참조) |
배열은 쿼리를 충족합니까? (의 정류자 |
연산자&&
, @>
and<@
PostgreSQL의 내장 연산자는 동일한 이름의 내장 연산자가 널을 포함하지 않는 스포츠 토토 베트맨 배열에서만 작동하지만 내장 연산자는 모든 어레이 유형에서 작동합니다. 이 제한은 많은 경우 내장 운영자보다 빠르게 가능합니다.
the@@
and~~
운영자는 배열이 A를 충족하는지 테스트합니다.쿼리, 전문 데이터 유형의 값으로 표현query_int
. 에이쿼리어레이의 요소에 대해 점검되는 스포츠 토토 베트맨 값으로 구성되며 연산자를 사용하여 결합 가능&
(및),|
(또는) 및!
(아님). 괄호는 필요에 따라 사용할 수 있습니다.1 & (2 | 3)
1을 포함하고 2 또는 3을 포함하는 어레이를 일치시킵니다.
intarray
&&
, @>
및@@
운영자 및 일반 배열 평등.
두 개의 매개 변수화 된 GIST 인덱스 연산자 클래스가 제공됩니다 :gist__int_ops
(기본적으로 사용)는 중소형 데이터 세트에 적합하지만gist__intbig_ops
더 큰 서명을 사용하고 큰 데이터 세트 (즉, 다수의 고유 한 배열 값을 포함하는 열)를 인덱싱하는 데 더 적합합니다. 구현은 손실 압축이 내장 된 RD-Tree 데이터 구조를 사용합니다.
gist__int_ops
스포츠 토토 베트맨 범위의 배열로 스포츠 토토 베트맨 세트를 근사화합니다. 선택적 스포츠 토토 베트맨 매개 변수Numranges
하나의 인덱스 키에서 최대 범위의 범위 수를 결정합니다. 의 기본값Numranges
는 100입니다. 유효한 값은 1에서 253 사이입니다. GIST 인덱스 키가 더 정확한 검색으로 이어지는 더 큰 배열을 사용합니다 (더 큰 인덱스 비용으로 더 적은 부분과 더 적은 힙 페이지를 스캔).
gist__intbig_ops
비트 맵 서명으로 스포츠 토토 베트맨 세트를 근사화합니다. 선택적 스포츠 토토 베트맨 매개 변수Siglen
시그니처 길이를 바이트로 결정합니다. 기본 서명 길이는 16 바이트입니다.
비 기본 진 운영자 클래스도 있습니다gin__int_ops
,이 연산자와 지원을 지원하는<@
.
GIST와 GIN 인덱싱 사이의 선택은 GIST와 GIN의 상대적 성능 특성에 따라 다릅니다.
- 메시지는 하나 이상일 수 있습니다“섹션”테이블 메시지 작성 (Mid int 기본 키, 섹션 int [], ...);
소스 디렉토리Contrib/Intarray/Bench
벤치 마크 테스트 스위트가 포함되어 있으며 설치된대로 실행할 수 있습니다PostgreSQL서버. (또한 필요DBD :: PG
설치하려면.) 실행 :
CD .../contrib/intarray/벤치
thebench.pl
스크립트는 많은 옵션이 있으며,이 옵션은 인수없이 실행될 때 표시됩니다.
모든 작업은 Teodor Sigaev (에 의해 수행되었습니다.<teodor@sigaev.ru
) 및 Oleg Bartunov (<oleg@sai.msu.su
). 보다http://www.sai.msu.su/~megera/postgres/gist/추가 정보. Andrey Oktyabrski는 새로운 기능과 운영을 추가하는 데 큰 노력을 기울였습니다.
29694_29888이 양식문서 문제를보고하려면