지원되는 버전:현재 (18) / 17 / 16 / 15 / 14 / 13
개발 버전:개발
지원되지 않는 버전:12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3
이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.현재버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

F.12. 인타레이

인타레이모듈은 다음을 제공합니다. 조작에 유용한 함수 및 연산자의 수 1차원 정수 배열. 에 대한 지원도 있습니다. 일부 연산자를 사용한 색인 검색입니다.

F.12.1.인타레이기능 및 운영자

표 F-7.인타레이기능

기능 반환 유형 설명 결과
icount(스포츠 토토 베트맨[]) 스포츠 토토 베트맨 배열의 요소 수 icount('1,2,3'::스포츠 토토 베트맨[]) 3
sort(스포츠 토토 베트맨[], 텍스트 디렉토리) 정수[] 배열 정렬 —dir반드시오름차순또는설명 sort('1,2,3'::스포츠 토토 베트맨[], '설명') {3,2,1}
정렬(스포츠 토토 베트맨[]) 정수[] 오름차순으로 정렬 정렬(배열[11,77,44]) {11,44,77}
sort_asc(스포츠 토토 베트맨[]) 정수[] 오름차순으로 정렬
sort_desc(스포츠 토토 베트맨[]) 정수[] 내림차순으로 정렬
uniq(스포츠 토토 베트맨[]) 정수[] 인접한 중복 항목 제거 uniq(sort('1,2,3,2,1'::스포츠 토토 베트맨[])) {1,2,3}
idx(스포츠 토토 베트맨[], 스포츠 토토 베트맨 항목) 스포츠 토토 베트맨 첫 번째 요소 일치 색인항목(없으면 0) idx(배열[11,22,33,22,11], 22) 2
하위 배열(스포츠 토토 베트맨[], 스포츠 토토 베트맨 시작, 정수 길이) 정수[] 위치에서 시작하는 배열 부분시작, len요소 하위 배열('1,2,3,2,1'::스포츠 토토 베트맨[], 2, 3) {2,3,2}
하위 배열(스포츠 토토 베트맨[], 스포츠 토토 베트맨 시작) 정수[] 위치에서 시작하는 배열 부분시작 하위 배열('1,2,3,2,1'::스포츠 토토 베트맨[], 2) {2,3,2,1}
스포츠 토토 베트맨set(스포츠 토토 베트맨) 정수[] 단일 요소 배열 만들기 스포츠 토토 베트맨set(42) {42}

표 F-8.인타레이연산자

운영자 반품 설명
정수[] && 정수[] 부울 겹침 —배열인 경우 하나 이상의 공통 요소가 있어야 합니다.
스포츠 토토 베트맨[] @ 스포츠 토토 베트맨[] 부울 포함 —남은 경우 배열에 오른쪽 배열이 포함되어 있습니다.
스포츠 토토 베트맨[] <@ 스포츠 토토 베트맨[] 부울 포함 —남은 경우 배열이 오른쪽 배열에 포함되어 있습니다.
# 정수[] 스포츠 토토 베트맨 배열의 요소 수
스포츠 토토 베트맨[] # 스포츠 토토 베트맨 스포츠 토토 베트맨 색인(동일idx함수)
정수[] + 정수 정수[] 요소를 배열에 푸시합니다(배열의 끝에 추가) 배열)
스포츠 토토 베트맨[] + 스포츠 토토 베트맨[] 정수[] 배열 연결(오른쪽 배열이 끝에 추가됨) 왼쪽 중)
정수[] - 정수 정수[] 다음에서 올바른 인수와 일치하는 항목을 제거합니다. 배열
정수[] - 정수[] 정수[] 왼쪽에서 오른쪽 배열 요소 제거
정수[] | 정수 정수[] 인수 합집합
정수[] | 정수[] 정수[] 배열의 합집합
정수[] & 정수[] 정수[] 배열의 교차점
스포츠 토토 베트맨[] @@ query_스포츠 토토 베트맨 부울 배열이 만족하는 경우 쿼리(아래 참조)
query_스포츠 토토 베트맨 ~~ 스포츠 토토 베트맨[] 부울 배열이 만족하는 경우 쿼리(정류자@@)

(PostgreSQL 8.2 이전에는 포함 연산자 @ 및 <@는 각각 @, ~라고 불렀습니다. 이 이름들은 아직도 사용할 수 있지만 더 이상 사용되지 않으며 결국 폐기될 예정입니다. 이전 이름은 규칙과 반대입니다. 이전에는 핵심 기하학적 데이터 유형이 뒤따랐습니다!)

@@그리고~~연산자는 배열이 다음을 충족하는지 테스트합니다.질의17876_17941query_스포츠 토토 베트맨. 갑질의정수 값으로 구성됩니다. 배열의 요소에 대해 검사됩니다. 연산자를 사용하여 결합&(그리고),|(OR) 및!(아닙니다). 필요에 따라 괄호를 사용할 수 있습니다. 에 대한 예, 쿼리1&(2|3)일치 1을 포함하고 2 또는 3도 포함하는 배열입니다.

F.12.2. 인덱스 지원

인타레이색인 지원 제공 에 대한&&, @, <@@@연산자 및 일반 배열 평등. 구현에서는 RD-트리 데이터 구조를 사용합니다. 손실 압축이 내장되어 있습니다.

두 개의 GiST 인덱스 연산자 클래스가 제공됩니다:gist__스포츠 토토 베트맨_ops(기본적으로 사용됨)은 다음에 적합합니다. 중소형 배열, 반면gist__스포츠 토토 베트맨big_ops더 큰 서명을 사용하며 대규모 배열을 인덱싱하는 데 더 적합합니다.

기본이 아닌 GIN 연산자 클래스도 있습니다gin__스포츠 토토 베트맨_ops.

GiST와 GIN 인덱싱 사이의 선택은 다음에 따라 다릅니다. GiST와 GIN의 상대적인 성능 특성은 다음과 같습니다. 다른 곳에서 논의되었습니다. 경험상 GIN 지수가 더 빠릅니다. GiST 인덱스보다 검색하지만 구축 또는 업데이트 속도가 느립니다. 그래서 GIN은 정적 데이터에 더 적합하고 GiST는 자주 업데이트되는 데이터에 더 적합합니다. 데이터.

F.12.3. 예시

-- 메시지는 하나 이상에 포함될 수 있습니다."섹션"CREATE TABLE 메시지(INT PRIMARY KEY 중간, INT[] 섹션, ...);

-- 특수 인덱스 생성
GIST를 사용하여 INDEX message_rdtree_idx ON 메시지 생성(gist__스포츠 토토 베트맨_ops 섹션);

-- 섹션 1 또는 2에서 메시지 선택 - OVERLAP 연산자
SELECT message.mid FROM message WHERE message.sections && '1,2';

-- 섹션 1과 2에서 메시지를 선택하세요. - CONTAINS 연산자
SELECT message.mid FROM 메시지 WHERE message.sections @ '1,2';

-- QUERY 연산자를 사용하여 동일
SELECT message.mid FROM 메시지 WHERE message.sections @@ '1&2'::query_스포츠 토토 베트맨;

F.12.4. 벤치마크

소스 디렉터리contrib/스포츠 토토 베트맨array/bench벤치마크가 포함되어 있습니다. 테스트 스위트. 실행하려면:

cd .../벤치
   생성된 테스트
   psql 테스트 < ../_스포츠 토토 베트맨.sql
   ./create_test.pl | psql 테스트
   ./bench.pl

bench.pl스크립트에는 수많은 옵션 없이 실행될 때 표시되는 옵션 인수.

F.12.5. 저자

모든 작업은 Teodor Sigaev에 의해 수행되었습니다 () 및 올렉 바르투노프(). 참조http://www.sai.msu.su/~megera/postgres/gist용 추가 정보. Andrey Oktyabrski가 훌륭한 작업을 수행했습니다. 새로운 기능과 작업을 추가합니다.