이 문서는 지원되지 않는 버전의 PostgreSQL 용입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다사설 토토 PostgreSQL : 문서 : 17 : 색인 생성버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

배트맨 토토 색인

이름

색인 배트맨 토토-새 인덱스 정의

시놉시스

[고유 한] 색인 만들기 [동시에] [이름] ontable_name[사용메소드]
    (column_name| (표현) [CollateCollation] [opclass] [asc | desc] [nulls 첫 번째 | 마지막  ] [, ...] )
    [ 와 함께 (Storage_Parameter=value[, ...])]
    [테이블 스페이스TableSpace_name]
    [ 어디술어]

설명

색인 배트맨 토토지정된 관계의 지정된 열 (테이블이 될 수 있습니다. 또는 구체화 된 견해. 인덱스는 주로 향상에 사용됩니다 데이터베이스 성능 (부적절한 사용은 느리게 발생할 수 있습니다 성능).

인덱스의 키 필드는 열 이름으로 지정됩니다. 또는 괄호로 작성된 표현으로. 다수의 인덱스 메소드가 멀티 컬럼을 지원하는 경우 필드를 지정할 수 있습니다. 인덱스.

인덱스 필드는 테이블 행의 하나 이상의 열. 이 기능은 사용될 수 있습니다 일부 변환에 따라 데이터에 대한 빠른 액세스를 얻습니다. 기본 데이터. 예를 들어, 계산 된 색인어퍼 (col)조항을 허용합니다여기서 상단 (col) = 'Jim'색인을 사용하려면

PostgreSQL인덱스를 제공합니다 방법 B- 트리, 해시, 요지, SP-Gist 및 진. 사용자는 또한 정의 할 수 있습니다 그들 자신의 색인 방법이지만 상당히 복잡합니다.

언제여기서조항이 있습니다.부분 색인생성되었습니다. 부분 색인 테이블의 일부에 대한 항목을 포함하는 색인입니다. 일반적으로 나머지 부분보다 인덱싱에 더 유용한 부분 테이블. 예를 들어, 두 가지를 포함하는 테이블이있는 경우 구금되지 않은 명령이 총 테이블의 작은 비율이지만 자주 사용됩니다. 섹션, JUST에서 인덱스를 만들어 성능을 향상시킬 수 있습니다. 그 부분. 또 다른 가능한 응용 프로그램은 사용하는 것입니다여기서with고유 한to 테이블의 하위 집합에 대한 독창성을 시행합니다. 보다섹션 11.8더 많은 토론을 위해.

에 사용 된 표현식여기서절 기본 테이블의 열만 참조 할 수 있지만 사용할 수 있습니다. 인덱스 된 모든 열만이 아닙니다. 현재, 하위 쿼리 그리고 집계 표현은 또한 금지되어 있습니다여기서. 인덱스 필드에는 동일한 제한이 적용됩니다 표현입니다.

인덱스 정의에 사용되는 모든 기능 및 연산자"불변", 즉, 결과가 필요합니다 그들의 주장에만 의존하고 결코 외부 영향에 의존하지 않습니다. (예 : 다른 테이블의 내용 또는 현재 시간). 이것 제한은 인덱스의 동작이 잘 정의되어 있는지 확인합니다. 인덱스 표현식에서 사용자 정의 함수를 사용하거나여기서조항은 함수를 표시해야합니다 당신이 그것을 만들 때 불변.

매개 변수

고유 한

시스템이 테이블의 중복 값을 확인하게합니다. 인덱스가 배트맨 토토 될 때 (데이터가 이미 존재하는 경우) 매번 데이터가 추가됩니다. 결과를 삽입하거나 업데이트하려고 시도합니다 중복 항목에서 오류가 발생합니다.

동시에

이 옵션이 사용될 때PostgreSQL취하지 않고 인덱스를 구축합니다 동시 인서트, 업데이트 또는 삭제를 방지하는 모든 잠금 테이블; 표준 색인 빌드가 잠금되는 반면 (그러나 테이블에서 읽습니다. 몇 가지 경고가 있습니다 이 옵션을 사용할 때주의하십시오 - 참조건물 동시에 색인.

이름

생성 될 인덱스의 이름. 스키마 이름은 없습니다 여기에 포함; 인덱스는 항상 같은 스키마에서 생성됩니다. 부모 테이블. 이름이 생략되면postgresql적절한 이름을 선택합니다 부모 테이블의 이름과 색인 된 열 이름.

table_name

테이블의 이름 (schema-qualified) 색인.

메소드

사용할 인덱스 메소드의 이름. 선택은btree, Hash, gist, Spgistand. 기본 메소드는입니다.btree.

column_name

테이블 열의 이름.

표현

테이블의 하나 이상의 열을 기반으로 한 표현식. 그만큼 표현은 일반적으로 주변 괄호로 작성해야합니다 구문에 표시됩니다. 그러나 괄호는 생략 될 수 있습니다 표현식은 함수 호출의 형태가 있습니다.

Collation

인덱스에 사용할 수있는 콜레이션 이름. 기본적으로 인덱스는 열이 색인화되거나 표현식의 결과는 색인화됩니다. 인덱스 비 디폴트 콜라이트는 관련된 쿼리에 유용 할 수 있습니다 비 기본 콜라주를 사용한 표현식.

opclass

운영자 클래스의 이름. 자세한 내용은 아래를 참조하십시오.

ASC

오름차순 정렬 순서 (기본값)를 지정합니다.

desc

내림차순 정렬 순서를 지정합니다.

Nulls First

nulls 전에 널 정렬을 지정합니다. 이것은 기본값입니다 언제desc지정되어 있습니다.

널 마지막

널이 아닌 후에 널이 정렬되도록 지정합니다. 이것은 기본값입니다 언제desc지정되지 않았습니다.

Storage_Parameter

인덱스 메드-특정 스토리지 매개 변수의 이름. 보다색인 스토리지 매개 변수자세한 내용.

TableSpace_name

인덱스를 배트맨 토토하는 테이블 스페이스. 지정되지 않은 경우default_tablespace상담 또는temp_tablespaces임시 테이블의 인덱스 용

술어

부분 색인에 대한 제약 조건 표현.

인덱스 스토리지 매개 변수

선택 사항with조항을 지정합니다스토리지 매개 변수인덱스. 각 인덱스 방법에는 자체 허용 스토리지 매개 변수 세트가 있습니다. 그만큼 B-Tree, Hash, Gist 및 SP-Gist Index Methods는 모두 이것을 받아들입니다. 매개 변수 :

FillFactor

인덱스의 필계는 방법을 결정하는 백분율입니다. 전체 인덱스 메소드가 인덱스 페이지를 포장하려고합니다. B- 트리의 경우 잎 페이지는 초기 인덱스 동안이 백분율로 채워집니다. 구축 및 오른쪽에서 인덱스를 확장 할 때 (새 추가 가장 큰 핵심 값). 그 후 페이지가 완전히 가득 차면 그들은 분할되어 지수의 점진적인 저하로 이어질 것입니다. 능률. B- 트리는 90의 기본 FillFactor를 사용하지만 모든 정수 10에서 100까지의 값을 선택할 수 있습니다. 테이블이 정적 인 경우 FillFactor 100은 인덱스의 물리적 크기를 최소화하는 데 가장 적합하지만 심하게 업데이트 된 테이블의 경우 더 작은 FillFactor가 더 좋습니다. 페이지 분할 필요성을 최소화하십시오. 다른 색인 방법은 사용됩니다 다르지만 대략적으로 유사한 방식으로 FillFactor; 기본값 FillFactor는 메소드마다 다릅니다.

GIST 인덱스 추가 로이 매개 변수를 수락합니다.

버퍼링

에 설명 된 버퍼링 빌드 기술이섹션 55.3.1는 인덱스를 구축하는 데 사용됩니다. 와 함께OFF장애가있는on활성화되고auto그것은입니다 처음에는 비활성화되었지만 인덱스 크기가 한 번만 켜졌습니다. 도달exply_cache_size. 기본값은auto.

진 인덱스는 다른 매개 변수를 수락합니다 :

Fastupdate

이 설정은 빠른 업데이트 기술의 사용법을 제어합니다 설명섹션 57.3.1. 그것은 부울 매개 변수 :on빠르게 활성화합니다 업데이트,OFF비활성화합니다. (대안 철자onandOFF에 설명 된대로섹션 18.1.) 기본값은입니다.on.

참고 :회전FastupdateOFF VIAAlter Index향후 삽입을 방지합니다 보류중인 인덱스 항목 목록으로 들어가지만 자체는 이전 항목을 플러시합니다. 당신은 원할 수도 있습니다진공나중에 보류중인 테이블 목록이 비워졌습니다.

동시에 빌드 인덱스

색인 배트맨 토토은 정기적 인 작동을 방해 할 수 있습니다. 데이터 베이스. 보통PostgreSQL쓰기에 대해 인덱싱 할 테이블을 잠그고 수행합니다. 테이블의 단일 스캔으로 전체 인덱스 빌드. 다른 트랜잭션은 여전히 테이블을 읽을 수 있지만 삽입하려고하면 테이블의 업데이트 또는 삭제 인덱스가 될 때까지 차단됩니다. 빌드가 완료되었습니다. 시스템이 라이브 프로덕션 데이터베이스. 매우 큰 테이블에는 몇 시간이 걸릴 수 있습니다 색인화되고 작은 테이블의 경우 인덱스 빌드가 잠글 수 있습니다. 제작에 대해 허용 할 수없는 시대의 작가 체계.

PostgreSQL건물 지원 잠그지 않고 인덱스. 이 방법은 다음과 같이 호출됩니다 지정동시에옵션색인 배트맨 토토. 이 옵션이 사용될 때PostgreSQL두 스캔을 수행해야합니다 테이블의, 또한 기존의 모든 것을 기다려야합니다. 인덱스를 잠재적으로 수정하거나 사용할 수있는 트랜잭션 끝내다. 따라서이 방법은 a보다 더 많은 총 작업이 필요합니다 표준 인덱스 구축이 크게 만들어지고 완료하는 데 훨씬 더 오래 걸립니다. 그러나, 그것은 정상적인 작업이 계속 될 수있게하므로 인덱스가 구축 되었으며이 방법은 새로운 인덱스를 추가하는 데 유용합니다. 생산 환경. 물론 추가 CPU 및 I/O 부하 색인 배트맨 토토에 의해 부과되면 다른 작업이 느려질 수 있습니다.

동시 인덱스 빌드에서 인덱스는 실제로 입력됩니다. 시스템이 한 번의 트랜잭션으로 카탈로그 한 다음 두 개의 테이블 스캔이 발생합니다. 두 번의 거래에서. 각 테이블 스캔 전에 인덱스 빌드 테이블을 수정 한 기존 거래를 기다려야합니다. 끝내다. 두 번째 스캔 후 인덱스 빌드는 스냅 샷이있는 트랜잭션 (참조메이저 토토 사이트 : 문서 : 9.3 : 동시성 제어) 종료 할 두 번째 스캔을 포기합니다. 그런 다음 마침내 색인은 사용할 준비가 될 수 있으며색인 배트맨 토토명령이 종료됩니다. 그러나 그럼에도 불구하고 인덱스는 쿼리에 대해 즉시 사용할 수 없을 수 있습니다. 최악의 경우 사례, 거래가 존재하는 한 사용할 수 없습니다. 인덱스 빌드의 시작.

교착 상태와 같이 테이블을 스캔하는 동안 문제가 발생하는 경우 또는 고유 한 지수의 독창성 위반,색인 배트맨 토토명령은 실패하지만 뒤에 남겨 둡니다."무효"색인. 이 색인은 될 것입니다 불완전 할 수 있기 때문에 쿼리 목적으로 무시됩니다. 그러나 여전히 업데이트 오버 헤드를 소비합니다. 그만큼PSQL \ d명령 그런 지수를Invalid:

postgres =# \ d 탭
       "public.tab"테이블
 열 |  유형 | 수정 자 
--------+--------+-----------
 col | 정수 | 
인덱스 :
    "idx"btree (col) 잘못된

그러한 경우 권장 복구 방법은 색인 및 다시 수행하려고색인 배트맨 토토 동시에. (또 다른 가능성은 지수를 재건하는 것입니다 와 함께Reindex. 그러나 이후로Reindex동시 빌드를 지원하지 않습니다 옵션은 매력적이지 않을 것 같지 않습니다.)

고유 한 지수를 동시에 구축 할 때의 또 다른 경고는 고유성 제약은 이미 다른 사람에 대해 시행되고 있습니다 두 번째 테이블 스캔이 시작될 때의 거래. 이것은 그것을 의미합니다 제약 위반은 이전에 다른 쿼리에서보고 될 수 있습니다. 인덱스는 사용 가능하거나 심지어 인덱스 빌드는 결국 실패합니다. 또한 실패가 발생하는 경우 두 번째 스캔,"무효"색인 나중에 독창성 제약을 계속 집행하고 있습니다.

동시 표현 인덱스 및 부분 인덱스의 동시 빌드입니다 지원. 이러한 표현의 평가에서 발생하는 오류 고유 한 것에 대해 위에서 설명한 것과 유사한 행동을 일으킬 수 있습니다. 제약 위반.

일반 색인 빌드는 다른 일반 색인 빌드가 동일한 테이블이 병렬로 발생하지만 동시 인덱스 하나만 발생합니다. 한 번에 테이블에서 빌드가 발생할 수 있습니다. 두 경우 모두 다른 유형은 없습니다 한편 테이블의 스키마 수정이 허용됩니다. 또 다른 차이점은 일반입니다.색인 배트맨 토토명령은 트랜잭션 블록 내에서 수행 할 수 있지만동시에 색인 배트맨 토토할 수 없습니다.

노트

참조토토 사이트 순위 : 문서 : 9.3 : 인덱스정보에 대한 정보 인덱스를 사용할 수있는 경우, 사용하지 않을 때 및 특정 상황이 유용 할 수 있습니다.

주의

해시 인덱스 작업은 현재 월경이 아니 었으므로 해시 인덱스는로 재건되어야 할 수도 있습니다.Reindex데이터베이스 충돌 후 기록되지 않은 변화. 또한 해시 인덱스 변경은 복제되지 않습니다 초기베이스 후 스트리밍 또는 파일 기반 복제 백업, 따라서 이후에 사용하는 쿼리에 대한 답변을 제공합니다. 그들을. 이러한 이유로 해시 인덱스 사용은 현재입니다 낙담.

현재, B- 트리, GIST 및 GIN 색인 메서드 지원 만 지원합니다. 멀티 컬럼 인덱스. 기본적으로 최대 32 개의 필드를 지정할 수 있습니다. (이 한도는 빌드시 변경 될 수 있습니다PostgreSQL.) B-Tree 만 현재 지원합니다 독특한 색인.

an운영자 클래스인덱스의 각 열. 운영자 클래스는 다음을 식별합니다 해당 열에 대한 인덱스에서 사용할 연산자. 예를 들어, a 4 바이트 정수의 B-Tree Index는를 사용합니다.int4_ops클래스; 이 운영자 클래스에는 포함됩니다 4 바이트 정수의 비교 기능. 실제로 열의 데이터 유형의 기본 연산자 클래스는 일반적으로 충분한. 운영자 클래스를 갖는 주요 요점은 일부 데이터 유형은 하나 이상의 의미있는 순서가있을 수 있습니다. 예를 들어, 복잡한 수 데이터 유형을 정렬 할 수 있습니다. 절대 가치 또는 실제 부분에 의해. 우리는 이것을 할 수 있습니다 데이터 유형에 대해 두 개의 운영자 클래스를 정의한 다음 선택 색인을 만들 때 적절한 클래스. 자세한 내용 운영자 클래스가스포츠 토토 베트맨 : 문서 : 9.3 : 운영자 클래스 및 운영자 가족and in와이즈 토토 PostgreSQL : 문서 : 9.3 : 인덱스에 대한 인터페이스 확장.

순서 스캔을 지원하는 인덱스 방법의 경우 (현재, 만 B-Tree), 옵션 조항ASC, desc, NULLS 첫 번째및/또는널 마지막할 수 있습니다 인덱스의 정렬 순서를 수정하도록 지정됩니다. an 순서 인덱스는 앞뒤로 스캔 할 수 있습니다. 일반적으로 단일 열을 만드는 데 유용desc색인 - 정렬 주문이 이미 사용 가능합니다 일반 색인으로. 이러한 옵션의 가치는 그 것입니다 정렬 순서와 일치하는 멀티 컬럼 인덱스를 만들 수 있습니다. 와 같은 혼합 주문 쿼리에 의해 요청됨선택 ... X ASC, y desc 주문. 그만큼nulls지원 해야하는 경우 옵션이 유용합니다"Nulls Sort Low"행동 기본값"Nulls Sort High", in 정렬 단계를 피하기 위해 인덱스에 의존하는 쿼리.

대부분의 인덱스 방법의 경우 인덱스 생성 속도는 다음과 같습니다. 의 설정에 따라Maintenance_Work_mem. 더 큰 값은 인덱스 배트맨 토토에 필요한 시간을 줄일 것입니다. 기억의 양보다 크게 만들지 않는 한 사용 가능한 것은 기계를 스와핑으로 이끌어 낼 수 있습니다.

usePostgreSQL : 문서 : 9.3 : 사설 토토 사이트 Indexan 색인.

사전 릴리스PostgreSQLr-tree 인덱스 방법이있었습니다. 이 방법이 제거되었습니다 요점에 비해 큰 장점이 없었기 때문입니다. 만약에RTREE 사용지정되어 있습니다.색인 배트맨 토토|GIST 사용, 오래된 데이터베이스의 변환을 단순화하기 위해 gist에.

예제

열에서 b- 트리 색인을 배트맨 토토하려면제목표에서영화:

필름에 고유 한 색인 제목 _idx 만들기 (제목);

표현식에 대한 색인 배트맨 토토Lower (Title), 효율적인 사례 감수성을 허용합니다 검색 :

필름에서 색인 배트맨 토토 ((lower (title));

(이 예에서는 인덱스 이름을 생략하기로 선택했습니다. 시스템은 이름을 선택합니다. 일반적으로films_lower_idx.)

비 디폴트 콜레이션으로 인덱스 배트맨 토토 :

영화에서 인덱스 제작 _idx_german 만들기 (Title Collate "de_de");

NULLS의 정렬 정렬 순서로 색인을 배트맨 토토하려면 :

필름에서 인덱스 제작 _idx_nulls_low 생성 (Title Nulls First);

비 기본 채우기 요소가있는 인덱스를 배트맨 토토하려면 :

영화에서 고유 인덱스 타이틀 _idx (title)를 사용하여 (fillfactor = 70);

a색인 빠른 업데이트 비활성화 :

with (fastupdate = off);를 사용하여 gin (위치)을 사용하여 documents_table에서 index gin_idx 생성

열에서 인덱스를 배트맨 토토하려면코드표에서영화그리고 색인이 있습니다 테이블 스페이스에 거주indexspace:

필름에서 인덱스 Code_Idx 만들기 (코드) TableSpace Indexspace;

우리가 할 수 있도록 포인트 속성에 GIST 인덱스를 작성하려면 변환 결과에 대해 박스 연산자를 효율적으로 사용하십시오. 기능:

인덱스 PointLoc 배트맨 토토
    GIST를 사용하는 지점 (상자 (위치, 위치));
* From Points를 선택하십시오
    Where Box (위치, 위치) && '(0,0), (1,1)':: Box;

잠금하지 않고 인덱스를 만들려면 테이블에 쓴다 :

sales_table (수량)에서 동시에 인덱스 생성 동시에 sales_quantity_index;

호환성

색인 배트맨 토토isPostgreSQL언어 확장. 아니요 SQL 표준의 색인 조항