롤 토토 : 문서 : 9.5 : 롤 토토 9.5.25 | |||
---|---|---|---|
이전 | PostgreSQL : 문서 : 9.5 : 추가 제공 윈 토토 | 부록 F. 추가 공급 모듈 | 롤 토토 커뮤니티 : 문서 : 9.5 : ISN |
the토토 커뮤니티array모듈은 널없는 정수를 조작하기위한 여러 가지 유용한 기능과 연산자를 제공합니다. 일부 연산자를 사용하여 인덱스 검색을 지원합니다.
제공된 배열에 널 요소가 포함 된 경우 이러한 모든 작업에 오류가 발생합니다.
이러한 작업 중 다수는 1 차원 배열에만 합리적입니다. 더 많은 치수의 입력 배열을 수락하지만 데이터는 스토리지 순서의 선형 배열 인 것처럼 취급됩니다.
토토 커뮤니티array모듈에 표시테이블 F-10, 연산자표 F-11.
테이블 F-10.토토 커뮤니티array기능
기능 | 반환 유형 | 설명 | example | 결과 |
---|---|---|---|---|
iCount (토토 커뮤니티 []) |
토토 커뮤니티 | 배열의 요소 수 | iCount ( '1,2,3':: 토토 커뮤니티 []) | 3 |
sort (토토 커뮤니티 [], text dir) |
토토 커뮤니티 [] | 정렬 배열 -dirASC또는desc | sort ( '1,2,3':: 토토 커뮤니티 [], 'desc') | 3,2,1 |
sort (토토 커뮤니티 []) |
토토 커뮤니티 [] | 오름차순 순서로 정렬 | sort (배열 [11,77,44]) | 11,44,77 |
sort_asc (토토 커뮤니티 []) |
토토 커뮤니티 [] | 오름차순 순서로 정렬 | ||
Sort_desc (토토 커뮤니티 []) |
토토 커뮤니티 [] | 내림차순으로 정렬 | ||
uniq (토토 커뮤니티 []) |
토토 커뮤니티 [] | 인접한 복제 제거 | uniq (sort ( '1,2,3,2,1':: 토토 커뮤니티 []) | 1,2,3 |
idx (토토 커뮤니티 [], 토토 커뮤니티 item) |
토토 커뮤니티 | 첫 번째 요소 일치의 색인항목(0이면 0) | idx (배열 [11,22,33,22,11], 22) | 2 |
서브 어레이 (토토 커뮤니티 [], 토토 커뮤니티 start, 토토 커뮤니티 len) |
토토 커뮤니티 [] | 위치에서 시작하는 배열 부분시작, Len요소 | 서브 어레이 ( '1,2,3,2,1':: 토토 커뮤니티 [], 2, 3) | 2,3,2 |
서브 어레이 (토토 커뮤니티 [], 토토 커뮤니티 start) |
토토 커뮤니티 [] | 위치에서 시작하는 배열 부분시작 | 서브 어레이 ( '1,2,3,2,1':: 토토 커뮤니티 [], 2) | 2,3,2,1 |
토토 커뮤니티set (토토 커뮤니티) |
토토 커뮤니티 [] | 단일 요소 배열 만들기 | 토토 커뮤니티set (42) | 42 |
표 F-11.토토 커뮤니티array운영자
운영자 | 반환 | 설명 |
---|---|---|
토토 커뮤니티 [] && 토토 커뮤니티 [] | 부울 | 오버랩 -True배열이 하나 이상의 공통 요소가있는 경우 |
토토 커뮤니티 [] @ 토토 커뮤니티 [] | 부울 | 포함 -true왼쪽 배열이 오른쪽 배열이 포함 된 경우 |
토토 커뮤니티 [] <@ 토토 커뮤니티 [] | 부울 | 포함 -true왼쪽 배열이 오른쪽 배열에 포함 된 경우 |
# 토토 커뮤니티 [] | 토토 커뮤니티 | 배열의 요소 수 |
토토 커뮤니티 [] # 토토 커뮤니티 | 토토 커뮤니티 | index (동일idx 기능) |
토토 커뮤니티 [] + 토토 커뮤니티 | 토토 커뮤니티 [] | 배열에 요소를 푸시 (배열 끝에 추가) |
토토 커뮤니티 [] + 토토 커뮤니티 [] | 토토 커뮤니티 [] | 배열 연결 (왼쪽 끝에 오른쪽 배열이 추가) |
토토 커뮤니티 [] - 토토 커뮤니티 | 토토 커뮤니티 [] | 배열에서 오른쪽 인수 일치하는 항목 제거 |
토토 커뮤니티 [] - 토토 커뮤니티 [] | 토토 커뮤니티 [] | 왼쪽에서 오른쪽 배열의 요소 제거 |
토토 커뮤니티 [] | 토토 커뮤니티 | 토토 커뮤니티 [] | 논증의 연합 |
토토 커뮤니티 [] | 토토 커뮤니티 [] | 토토 커뮤니티 [] | 어레이의 연합 |
토토 커뮤니티 [] & 토토 커뮤니티 [] | 토토 커뮤니티 [] | 배열 교차점 |
토토 커뮤니티 [] @@ query_토토 커뮤니티 | 부울 | true배열이 쿼리를 만족시키는 경우 (아래 참조) |
query_토토 커뮤니티 ~~ 토토 커뮤니티 [] | 부울 | true배열이 쿼리를 만족시키는 경우 (@@) |
(Postgresql 8.2 이전, 격리 연산자@and<@각각.@and~. 이 이름은 여전히 사용 가능하지만 감가 상각되며 결국 은퇴 할 것입니다. 이전 이름은 이전에 컨벤션에서 반전 된 후 핵심 기하학적 데이터 유형이 뒤 따릅니다!)
연산자&&, @and<@PostgreSQL의 내장 연산자는 동일한 이름의 내장 연산자가 널이 포함되지 않은 정수 배열에서만 작동하는 반면 내장 연산자는 모든 어레이 유형에서 작동합니다. 이 제한은 많은 경우 내장 운영자보다 빠르게 가능합니다.
the@@and~~운영자는 배열이 a를 충족하는지 테스트합니다.쿼리, 전문 데이터 유형의 값으로 표현query_토토 커뮤니티. 에이쿼리어레이의 요소에 대해 점검되는 정수 값으로 구성되며 연산자를 사용하여 결합 할 수 있습니다&(및),|(또는) 및!(아님). 괄호는 필요에 따라 사용할 수 있습니다. 예를 들어, 쿼리1 & (2 | 3)1을 포함하고 2 또는 3을 포함하는 어레이를 일치시킵니다.
토토 커뮤니티array에 대한 색인 지원 제공&&, @, <@및@@운영자 및 일반 배열 평등.
2 개의 요점 인덱스 운영자 클래스가 제공됩니다.gist__토토 커뮤니티_ops(기본적으로 사용)는 중소형 데이터 세트에 적합하지만gist__토토 커뮤니티big_ops더 큰 서명을 사용하고 큰 데이터 세트 (즉, 다수의 고유 한 배열 값을 포함하는 열)를 색인화하는 데 더 적합합니다. 구현은 손실 압축이 내장 된 RD-Tree 데이터 구조를 사용합니다.
비 기본 진 운영자 클래스도 있습니다gin__토토 커뮤니티_ops동일한 연산자 지원.
GIST와 GIN 인덱싱 사이의 선택은 다른 곳에서 논의되는 GIST 및 GIN의 상대적 성능 특성에 따라 다릅니다. 경험상, 진 지수는 GIST 지수보다 검색이 더 빠르지 만 빌드 또는 업데이트가 느리게 진행됩니다. 따라서 Gin은 정적 데이터와 종종 업데이트 된 데이터에 대한 GIST에 더 적합합니다.
- 메시지는 하나 이상일 수 있습니다"섹션"테이블 메시지 작성 (Mid 토토 커뮤니티 기본 키, 섹션 토토 커뮤니티 [], ...);
- 특수 인덱스를 만듭니다
GIST를 사용하여 메시지에서 색인 Message_rdTree_idx를 작성하십시오 (GIST__INT_OPS 섹션);
- 섹션 1 또는 2에서 메시지 선택 - 연산자 중첩
Message.Sections && '1,2';
- 섹션 1 및 2에서 메시지 선택 - 운영자가 포함됩니다.
message.sections.sections @ '1,2';
- 쿼리 연산자를 사용하여 동일합니다
Message.sections.sections.sections.sections.sections.sections.sections.mid를 선택하십시오.
소스 디렉토리Contrib/토토 커뮤니티array/Bench벤치 마크 테스트 스위트가 포함되어 있습니다. 달리기 :
CD .../벤치 생성 된 테스트 psql test <../_토토 커뮤니티.sql ./create_test.pl | PSQL 테스트 ./Bench.pl
theBench.pl스크립트는 수많은 옵션이 있으며,이 옵션은 인수없이 실행될 때 표시됩니다.
모든 작업은 Teodor Sigaev (에 의해 수행되었습니다.<reodor@sigaev.ru
) 및 Oleg Bartunov (<oleg@sai.msu.su
). 보다http : //www.sai.msu.su/~megera/postgres/gist/추가 정보. Andrey Oktyabrski는 새로운 기능과 운영을 추가하는 데 큰 노력을 기울였습니다.