[고유 한] 스포츠 토토 베트맨 만들기 [동시에] [이름] ontable_name[사용메소드] (column_name| (표현) [CollateCollation] [opclass] [asc | desc] [nulls 첫 번째 | 마지막 ] [, ...] ) [ 와 함께 (Storage_Parameter=value[, ...])] [테이블 스페이스TableSpace_name] [ 어디술어]
스포츠 토토 베트맨 생성스포츠 토토 베트맨을 구성합니다 지정된 테이블의 지정된 열. 인덱스입니다 주로 데이터베이스 성능을 향상시키는 데 사용됩니다 부적절하게 사용하면 성능이 느려질 수 있습니다.
인덱스의 키 필드는 열 이름으로 지정됩니다. 또는 괄호로 작성된 표현으로. 다수의 인덱스 메소드가 멀티 컬럼을 지원하는 경우 필드를 지정할 수 있습니다. 인덱스.
인덱스 필드는 값에서 계산 된 표현식 일 수 있습니다. 테이블 행의 하나 이상의 열 중. 이 기능을 사용할 수 있습니다 일부 변환을 기반으로 데이터에 대한 빠른 액세스를 얻으려면 기본 데이터. 예를 들어, 계산 된 색인어퍼 (col)조항을 허용합니다여기서 상단 (col) = 'Jim'스포츠 토토 베트맨을 사용하려면
PostgreSQL인덱스를 제공합니다 방법 B- 트리, 해시, 요지, SP-Gist 및 진. 사용자도 할 수 있습니다 자체 인덱스 방법을 정의하지만 상당히입니다 복잡한.
언제여기서조항이 있습니다.부분 스포츠 토토 베트맨생성됩니다. 부분 스포츠 토토 베트맨은 테이블, 일반적으로 인덱싱에 더 유용한 부분 테이블의 나머지. 예를 들어, 테이블이있는 경우 실금되지 않은 곳에 청구되지 않은 명령과 채워지지 않은 주문이 모두 포함됩니다 주문은 총 테이블의 작은 부분을 차지하지만 자주 사용되는 섹션이므로 생성하여 성능을 향상시킬 수 있습니다. 그 부분에 대한 스포츠 토토 베트맨. 또 다른 가능한 응용 프로그램입니다 사용여기서with고유 한a의 하위 집합에 대한 고유성을 시행합니다 테이블. 보다PostgreSQL : 문서 : 9.2 : 부분 토토 결과더 많은 토론.
여기서조항은 기본 테이블의 열만 참조 할 수 있지만 색인화 된 열뿐만 아니라 모든 열을 사용할 수 있습니다. 현재, 하위 쿼리 및 집계 표현은 또한 금지되어 있습니다.여기서. 동일한 제한이 적용됩니다 표현식 인 색인 필드.
스포츠 토토 베트맨 정의에 사용되는 모든 기능 및 연산자 BE"불변", 즉 결과 그들의 주장에만 의존해야하며 결코 외부에 의존해야합니다. 영향 (예 : 다른 테이블의 내용 또는 현재 시간). 이 제한은 지수의 동작이 잘 정의되었습니다. 인덱스에서 사용자 정의 함수를 사용합니다 표현 또는여기서절, 기억하십시오 만들 때 불변의 기능을 표시하십시오.
시스템이 테이블 인덱스가 생성 된 경우 (데이터가 이미 존재하는 경우) 데이터가 추가 될 때마다. 데이터를 삽입하거나 업데이트하려고 시도합니다 이로 인해 중복 항목이 생성됩니다 오류.
이 옵션이 사용될 때PostgreSQL지수를 구축합니다 동시 인서트를 방지하는 잠금 장치를 사용하지 않고 테이블에서 업데이트 또는 삭제; 표준 색인 빌드 잠금 장치는 테이블에 쓰기 (읽지 않음)까지 끝났습니다. 언제 알아야 할 경고가 있습니다 이 옵션 사용 - 참조건물 동시에 색인.
생성 할 인덱스의 이름. 스키마 이름은 없습니다 여기에 포함됩니다. 인덱스는 항상 동일하게 생성됩니다 부모 테이블로서의 스키마. 이름이 생략되면PostgreSQL선택 a 부모 테이블의 이름과 인덱스 열 이름 (들).
테이블의 이름 (schema-qualified) 색인.
사용할 인덱스 메소드의 이름. 선택은btree, Hash, gist, SPGISTand진. 기본 메소드는입니다.btree.
테이블 열의 이름.
테이블의 하나 이상의 열을 기반으로 한 표현. 표현은 일반적으로 주변과 함께 작성되어야합니다 구문에 표시된대로 괄호. 그러나, 표현식에 형식이 있으면 괄호 안에서 생략 할 수 있습니다. 함수 호출의.
인덱스에 사용할 수있는 콜레이션 이름. 에 의해 기본값, 인덱스는 선언 된 Collation을 사용합니다 색인화 될 열 또는 결과적 색인화 될 수정. 비 디폴트가있는 색인 콜라이트는 관련된 쿼리에 유용 할 수 있습니다 비 기본 콜라주를 사용한 표현식.
운영자 클래스의 이름. 아래를 참조하십시오 세부.
오름차순 정렬 순서 ( 기본).
내림차순 정렬 순서를 지정합니다.
널이 아닌 널 전에 널 정렬을 지정합니다. 이것은입니다 기본값은descis 지정.
널이 아닌 후에 널이 정렬되도록 지정합니다. 이것은입니다 기본값은desc그렇지 않습니다 지정.
인덱스 메드-특정 스토리지 매개 변수의 이름. 보다색인 스토리지 매개 변수자세한 내용.
인덱스를 생성하는 테이블 스페이스. 그렇지 않다면 지정,default_tablespace상담 또는temp_tablespaces임시 테이블의 인덱스 용
부분 스포츠 토토 베트맨에 대한 제약 조건 표현.
선택 사항with조항을 지정합니다스토리지 매개 변수색인. 각 인덱스 방법에는 자체 허용 스토리지 매개 변수 세트가 있습니다. 그만큼 B-Tree, Hash, Gist 및 SP-Gist Index Methods는 모두 이것을 받아들입니다. 매개 변수 :
인덱스의 필수 요인은 그 백분율입니다 인덱스 메소드가 포장을 시도하는 방법을 결정합니다. 색인 페이지. B- 트리의 경우 잎 페이지가 채워집니다 초기 인덱스 빌드 중 백분율 및시기 오른쪽에서 인덱스 확장 (새로운 가장 큰 키 추가 값). 그 후 페이지가 완전히 가득 차면 그들은 분열되어 점진적인 저하로 이어질 것입니다. 인덱스의 효율성. B- 트리는 기본 FillFactor를 사용합니다 90이지만 10에서 100까지의 정수 값을 선택할 수 있습니다. 테이블이 정적 인 경우 FillFactor 100이 가장 좋습니다. 색인의 물리적 크기를 최소화하지만 크게 업데이트 된 테이블 더 작은 FillFactor가 최소화하는 것이 좋습니다 페이지 분할이 필요합니다. 다른 색인 방법은 사용됩니다 다르지만 대략적으로 유사한 방식으로 FillFactor; 그만큼 기본 FillFactor는 메소드마다 다릅니다.
GIST 인덱스는이 매개 변수를 추가로 수락합니다.
버퍼링 빌드 기술 여부를 결정합니다 설명섹션 53.3.1지수를 구축하는 데 사용됩니다. 와 함께OFF장애가있는on활성화되고auto처음에는 비활성화되었지만 돌 렸습니다 인덱스 크기에 도달하면 날짜에exply_ca스포츠 토토 베트맨e_size. 기본값은auto.
진 인덱스 다른 매개 변수를 수락합니다 :
스포츠 토토 베트맨 생성은 정기적 인 작동을 방해 할 수 있습니다. 데이터 베이스. 보통postgresql쓰기에 대해 스포츠 토토 베트맨화 할 테이블을 잠그고 수행합니다. 테이블의 단일 스캔으로 전체 인덱스 빌드. 다른 거래는 여전히 테이블을 읽을 수 있지만 테이블에있는 행에 행을 삽입, 업데이트 또는 삭제합니다. 인덱스 빌드가 완료 될 때까지. 이것은 심각 할 수 있습니다 효과 시스템이 라이브 프로덕션 데이터베이스 인 경우. 매우 큽니다 테이블은 스포츠 토토 베트맨을 유지하는 데 많은 시간이 걸릴 수 있으며, 심지어는 더 작은 경우에도 테이블, 인덱스 빌드는 기간 동안 작가를 잠글 수 있습니다. 생산 시스템에는 허용되지 않습니다.
PostgreSQL지원 잠그지 않고 인덱스를 구축합니다. 이 방법은입니다 지정하여 호출동시에옵션스포츠 토토 베트맨 생성. 이렇게하면 옵션이 사용됩니다.PostgreSQL테이블의 두 스캔을 수행해야합니다. 잠재적으로 가능한 모든 기존 거래를 기다리십시오 인덱스를 수정하거나 사용하여 종료하십시오. 따라서이 방법에는 필요합니다 표준 지수 빌드보다 더 많은 총 작업을하고 완료하는 데 상당히 길다. 그러나 허용하기 때문에 인덱스가 구축되는 동안 계속할 수있는 일반 작업, 메소드는 프로덕션에서 새로운 인덱스를 추가하는 데 유용합니다. 환경. 물론, 추가 CPU 및 I/O 부하가 스포츠 토토 베트맨 생성은 다른 작업 속도를 늦출 수 있습니다.
동시 인덱스 빌드에서 인덱스가 실제로 입력됩니다. 시스템에 한 번의 트랜잭션에서 카탈로그를 한 다음 두 테이블로 카탈로그합니다. 스캔은 두 가지 거래에서 발생합니다. 각 테이블 스캔 전에 인덱스 빌드는 기존 거래를 기다려야합니다. 테이블을 종료하도록 수정했습니다. 두 번째 스캔 후 인덱스 빌드는 스냅 샷이있는 트랜잭션을 기다려야합니다. (보다사설 토토 : 문서 : 9.2 : 동시성 제어) 두 번째 프레싱 종료하려면 스캔하십시오. 마지막으로 인덱스가 준비 될 수 있습니다 사용을 위해,스포츠 토토 베트맨 생성명령 종료됩니다. 그러나 그럼에도 불구하고 스포츠 토토 베트맨은 그렇지 않을 수 있습니다 쿼리를 위해 즉시 사용할 수 있습니다 : 최악의 경우에는 거래가 시작되는 한 거래가 존재하는 한 스포츠 토토 베트맨 빌드.
테이블을 스캔하는 동안 문제가 발생하면 고유 한 지수의 독창성 위반,스포츠 토토 베트맨 생성명령은 실패하지만 남겨 둡니다"무효"스포츠 토토 베트맨. 이 지수는 할 것입니다 쿼리 목적으로 무시하십시오 불완전한; 그러나 여전히 업데이트 오버 헤드를 소비합니다. 그만큼PSQL \ d명령은와 같은 스포츠 토토 베트맨을보고합니다.Invalid:
postgres =# \ d 탭 "public.tab"테이블 열 | 유형 | 수정 자 --------+--------+----------- col | 정수 | 인덱스 : "idx"btree (col) 잘못된
그러한 경우 권장 복구 방법은 스포츠 토토 베트맨 및 다시 수행하려고스포츠 토토 베트맨 생성 동시에. (또 다른 가능성은 지수를 재건하는 것입니다 와 함께reindex. 그러나 이후로Reindex동시를 지원하지 않습니다 빌드,이 옵션은 매력적이지 않을 것 같지 않습니다.)
고유 한 색인을 구축 할 때의 또 다른 경고는 동시에입니다 독창성 제약이 이미 시행되고 있습니다 두 번째 테이블 스캔이 시작될 때 다른 거래에 대해. 이는 제약 조건 위반이보고 될 수 있음을 의미합니다 인덱스가 사용 가능하기 전에 다른 쿼리 인덱스 빌드가 결국 실패하는 경우에도. 또한 IF 두 번째 스캔에서 실패가 발생합니다."무효"스포츠 토토 베트맨은 계속 시행됩니다 나중에 독창성 제약.
동시 표현식 인덱스 및 부분 스포츠 토토 베트맨의 동시 빌드 지원됩니다. 이들의 평가에서 발생하는 오류 표현은 설명 된 것과 비슷한 행동을 유발할 수 있습니다 고유 한 제약 조건 위반을 위해 위.
일반 스포츠 토토 베트맨 빌드는 다른 일반 스포츠 토토 베트맨을 구축 할 수 있습니다 동일한 테이블이 병렬로 발생하지만 동시 하나만 발생합니다. 인덱스 빌드는 한 번에 테이블에서 발생할 수 있습니다. 두 경우 모두, 아니요 테이블의 다른 유형의 스키마 수정이 허용됩니다. 그 동안에. 또 다른 차이점은 정기적 인 것입니다스포츠 토토 베트맨 생성명령을 a 거래 블록이지만스포츠 토토 베트맨 생성 동시에할 수 없습니다.
참조토토 캔 : 문서 : 9.2 : 인덱스정보 인덱스를 사용할 수있는시기, 사용하지 않을 때 및 그들이 유용 할 수있는 특정 상황.
주의 |
해시 인덱스 작업은 현재 Wal-Logged가 아닙니다 해시 인덱스는로 재건되어야 할 수도 있습니다.Reindex데이터베이스 충돌 후 기록되지 않은 변화였습니다. 또한 해시 인덱스의 변경 사항이 있습니다 스트리밍 또는 파일 기반 복제를 통해 복제되지 않습니다 초기 기본 백업 후에는 답변을 제공합니다. 이후에 사용하는 쿼리. 이러한 이유로 해시 인덱스 사용은 현재 낙담합니다. |
현재, B-Tree, Gist 및 Gin Index Methods 지원 만 멀티 컬럼 인덱스. 기본적으로 최대 32 개의 필드를 지정할 수 있습니다. (이 한도는 빌드시 변경 될 수 있습니다PostgreSQL.) 현재 B-Tree 만 현재 지원합니다 독특한 스포츠 토토 베트맨.
an운영자 클래스지정할 수 있습니다 인덱스의 각 열에 대해. 운영자 클래스는 다음을 식별합니다 해당 열에 대한 인덱스에서 사용할 연산자. 예를 들어, a 4 바이트 정수의 B-Tree Index는를 사용합니다.int4_ops클래스; 이 운영자 클래스에는 포함됩니다 4 바이트 정수의 비교 기능. 실제로 열의 데이터 유형의 기본 연산자 클래스는 일반적으로 충분한. 운영자 클래스를 갖는 주요 요점은 일부 데이터 유형은 둘 이상의 의미있는 것이있을 수 있습니다. 주문. 예를 들어, 복잡한 수를 정렬 할 수 있습니다 절대 값 또는 실제 부분 별 데이터 유형. 우리는 할 수 있습니다 데이터 유형에 대한 두 개의 운영자 클래스를 정의 한 다음 인덱스를 만들 때 적절한 클래스를 선택합니다. 더 많은 정보 운영자 수업에 대해섹션 11.9and in섹션 35.14.
순서 스캔을 지원하는 인덱스 방법의 경우 (현재, 만 B-Tree), 옵션 조항ASC, desc, 널 첫 번째및/또는널 마지막할 수 있습니다 인덱스의 정렬 순서를 수정하도록 지정됩니다. an 순서 인덱스는 앞으로 또는 뒤로 스캔 할 수 있습니다. 일반적으로 단일 열을 만드는 데 유용하지 않습니다descindex - 정렬 주문은 이미입니다 일반 색인으로 사용할 수 있습니다. 이 옵션의 가치는 다음과 같습니다 종류와 일치하는 멀티 컬럼 인덱스를 만들 수 있습니다. 혼합 주문 쿼리가 요청한 주문선택 ... X ASC, y desc 주문. 그만큼nulls지원 해야하는 경우 옵션이 유용합니다"Nulls Sort Low"행동이 아니라 행동 기본값"Nulls Sort High", in 정렬 단계를 피하기 위해 인덱스에 의존하는 쿼리.
대부분의 인덱스 방법의 경우 인덱스 생성 속도는 다음과 같습니다. 의 설정에 따라maintenance_work_mem. 더 큰 값은 인덱스 생성에 필요한 시간을 줄일 것입니다. 기억의 양보다 크게 만들지 않는 한 사용 가능한 것은 기계를 스와핑으로 이끌어 낼 수 있습니다.
usePostgreSQL : 문서 : 9.2 : 토토 커뮤니티 Indexan 색인.
사전 릴리스PostgreSQL또한 R- 트리 인덱스 방법이있었습니다. 이 방법이 제거되었습니다 요점에 비해 큰 장점이 없었기 때문입니다. 만약에RTREE 사용지정되어 있습니다.스포츠 토토 베트맨 생성GIST 사용, 오래된 전환을 단순화하려면 GIST에 대한 데이터베이스.
열에서 b- 트리 스포츠 토토 베트맨 생성제목표에서영화:
필름에 고유 한 색인 제목 _idx 생성 (제목);
표현식에 대한 스포츠 토토 베트맨 생성하단 (제목), 효율적인 사례 감수성을 허용합니다 검색 :
필름에서 스포츠 토토 베트맨 생성 ((lower (title));
(이 예에서는 인덱스 이름을 생략하기로 선택했습니다. 시스템은 이름을 선택합니다. 일반적으로films_lower_idx.)
비 디폴트 콜레이션으로 인덱스를 생성하려면 :
영화에서 인덱스 제목 _idx_german 만들기 (Title Collate "de_de");
비 분개 정렬 순서가있는 인덱스를 생성합니다 널스 :
영화에서 인덱스 제작 _idx_nulls_low (Title Nulls First);
비 분리 채우기 요소로 인덱스를 생성하려면 :
필름 (title)에서 고유 인덱스 제목 _idx 생성 (fillfactor = 70);
agin스포츠 토토 베트맨 빠른 업데이트 비활성화 :
with (fastupdate = off);를 사용하여 문서 _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 생성 동시에 sales_quantity_index 생성;