색인 생성 - 새 인덱스 정의
[고유 한] 색인 만들기 [동시에] [[존재하지 않으면]이름
] on [Only]table_name
[사용메소드
] (column_name
| (표현
) [CollateCollation
] [opclass
[(opclass_parameter
=value
[, ...])]] [asc | desc] [nulls 첫 번째 | 마지막 ] [, ...] ) [ 포함하다 (column_name
[, ...])] [NULLS [뚜렷하지 않음] [ 와 함께 (Storage_Parameter
[=value
] [, ...])] [테이블 스페이스TableSpace_name
] [ 어디술어
]
색인 생성
지정된 관계의 지정된 열에 메이저 토토 사이트를 구성하며, 이는 테이블 또는 구체화 된보기 일 수 있습니다. 메이저 토토 사이트는 주로 데이터베이스 성능을 향상시키는 데 사용됩니다 (부적절한 사용은 성능이 느려질 수 있지만).
인덱스의 키 필드는 열 이름으로 지정되거나 괄호로 작성된 표현식으로 지정됩니다. 인덱스 메소드가 멀티 컬럼 인덱스를 지원하는 경우 여러 필드를 지정할 수 있습니다.
인덱스 필드는 테이블 행의 하나 이상의 열 값에서 계산 된 표현식 일 수 있습니다. 이 기능은 기본 데이터의 일부 변환에 따라 데이터에 대한 빠른 액세스를 얻는 데 사용될 수 있습니다. 예를 들어, 계산 된 색인어퍼 (col)
조항을 허용합니다여기서 상단 (col) = 'Jim'
색인을 사용하려면
PostgreSQL색인 방법 B-Tree, HASH, GIST, SP-GIST, GIN 및 BRIN을 제공합니다. 사용자는 또한 자체 색인 방법을 정의 할 수 있지만 상당히 복잡합니다.
언제여기서
조항이 있습니다.부분 색인생성됩니다. 부분 색인은 테이블의 일부에 대한 항목을 포함하는 색인이며, 일반적으로 나머지 테이블보다 인덱싱에 더 유용한 부분입니다. 예를 들어, 청구되지 않은 주문이 포함 된 청구되지 않은 명령과 채워지지 않은 주문이 모두 포함 된 테이블이있는 경우, 전체 테이블의 작은 부분을 차지하지만 종종 사용되는 섹션 인 경우 해당 부분에 대한 인덱스를 만들어 성능을 향상시킬 수 있습니다. 또 다른 가능한 응용 프로그램은 사용하는 것입니다여기서
with고유 한
테이블의 하위 집합에 대한 독창성을 시행합니다. 보다PostgreSQL : 문서 : 17 : 11.8. 사설 토토 색인더 많은 토론을 위해.
여기서
절은 기본 테이블의 열만 참조 할 수 있지만 색인화 된 열뿐만 아니라 모든 열을 사용할 수 있습니다. 현재 하위 쿼리 및 집계 표현은 또한 금지되어 있습니다.여기서
. 표현식 인 색인 필드에는 동일한 제한이 적용됩니다.
메이저 토토 사이트 정의에 사용되는 모든 기능 및 연산자“불변”이 제한은 지수의 동작이 잘 정의되어 있는지 확인합니다. 인덱스 표현식에서 사용자 정의 함수를 사용하거나여기서
조항, 만들 때 불변 할 수없는 기능을 표시하십시오.
고유 한
메이저 토토 사이트가 생성 될 때 (데이터가 이미 존재하는 경우) 데이터가 추가 될 때 시스템이 테이블의 중복 값을 확인하게합니다. 중복 항목을 초래할 데이터를 삽입하거나 업데이트하려는 시도는 오류가 발생합니다.
분할 된 테이블에 고유 메이저 토토 사이트가 적용될 때 추가 제한이 적용됩니다. 보다테이블 생성.
동시에
이 옵션이 사용될 때postgresql테이블에서 동시 인서트, 업데이트 또는 삭제를 방지하는 잠금 장치를 사용하지 않고 메이저 토토 사이트를 구축합니다. 표준 메이저 토토 사이트 빌드는 끝날 때까지 테이블에 쓴 (읽지 않음)가 잠금됩니다. 이 옵션을 사용할 때 알아야 할 몇 가지 경고가 있습니다. 참조동시에 건물 색인아래.
임시 테이블의 경우색인 생성
| 다른 세션에 액세스 할 수없고, 비 일치한 메이저 토토 사이트 생성은 저렴합니다.
존재하지 않으면
같은 이름과의 관계가 이미 존재하는 경우 오류를 던지지 마십시오. 이 경우 통지가 발행됩니다. 기존 인덱스가 생성 된 인덱스와 비슷하다는 보장은 없습니다. 인덱스 이름이 필요합니다존재하지 않는 경우
지정되어 있습니다.
포함
선택 사항포함
절은 색인에 포함될 열 목록을 지정합니다.비 키열. 비 키 열은 인덱스 스캔 검색 자격에 사용될 수 없으며 인덱스에 의해 시행되는 독창성 또는 배제 제약 조건을 위해 무시됩니다. 그러나 인덱스 전용 스캔은 인덱스 테이블을 방문하지 않고도 비 키 열의 내용을 반환 할 수 있습니다. 인덱스 항목에서 직접 사용할 수 있기 때문입니다. 따라서 비 키 열을 추가하면 인덱스 전용 스캔이 사용될 수없는 쿼리에 사용할 수 있습니다.
지수, 특히 넓은 열에 비 키 열을 추가하는 것이 보수적 인 것이 좋습니다. 인덱스 튜플이 인덱스 유형에 허용되는 최대 크기를 초과하면 데이터 삽입이 실패합니다. 어쨌든, 비 키 열은 인덱스 테이블에서 데이터를 복제하고 인덱스 크기를 부풀려서 검색이 느려질 수 있습니다. 또한 B-Tree 중복 제거는 비 키 열이있는 인덱스와 함께 사용되지 않습니다.
열에 나열된 열포함
조항은 적절한 운영자 클래스가 필요하지 않습니다. 이 조항에는 데이터 유형이 주어진 액세스 방법에 대해 정의 된 운영자 클래스가없는 열이 포함될 수 있습니다.
표현식은 인덱스 전용 스캔으로 사용할 수 없으므로 포함 된 열로 지원되지 않습니다.
현재 B-Tree, GIST 및 SP-GIST 인덱스 액세스 방법은이 기능을 지원합니다. 이 인덱스에서는에 나열된 열의 값이포함
조항은 힙 튜플에 해당하지만 트리 내비게이션에 사용되는 상위 레벨 인덱스 항목에는 포함되지 않은 잎 튜플에 포함되어 있습니다.
이름
생성 될 인덱스의 이름. 여기에는 스키마 이름이 포함될 수 없습니다. 인덱스는 항상 상위 테이블과 동일한 스키마에서 생성됩니다. 인덱스의 이름은 해당 스키마의 다른 관계 (테이블, 시퀀스, 인덱스, 뷰, 구체화 된보기 또는 외국 테이블)의 이름과 구별되어야합니다. 이름이 생략되면PostgreSQL상위 테이블의 이름과 색인 된 열 이름을 기준으로 적합한 이름을 선택합니다.
전용
테이블이 분할 된 경우 파티션에서 메이저 토토 사이트 생성을 재발하지 않음을 나타냅니다. 기본값은 재발하는 것입니다.
table_name
색인화 할 테이블의 이름 (schema-qualified).
메소드
사용할 인덱스 메소드의 이름. 선택은btree
, Hash
, gist
, SPGIST
, 진
, 브린
또는 사용자가 설치 한 액세스 방법과 같은PostgreSQL : 문서 : 17 : F.6. 블룸 - 블룸 필터 토토 핫 액세스 방법. 기본 메소드는입니다.btree
.
column_name
테이블 열의 이름.
표현
테이블의 하나 이상의 열을 기반으로 한 표현. 표현식은 일반적으로 구문에 표시된 것처럼 주변 괄호로 작성되어야합니다. 그러나 표현식에 함수 호출 형태가 있으면 괄호를 생략 할 수 있습니다.
Collation
인덱스에 사용할 수있는 콜레이션 이름. 기본적으로 인덱스는 열이 색인화 될 수 있도록 선언 된 Collation을 사용하거나 표현식의 결과가 인덱싱 될 수 있습니다. 비 디폴트 콜라주가있는 인덱스는 비 디폴트 콜라주를 사용하는 표현식이 포함 된 쿼리에 유용 할 수 있습니다.
opclass
운영자 클래스의 이름. 자세한 내용은 아래를 참조하십시오.
opclass_parameter
운영자 클래스 매개 변수의 이름. 자세한 내용은 아래를 참조하십시오.
ASC
오름차순 정렬 순서 (기본값)를 지정합니다.
desc
내림차순 정렬 순서를 지정합니다.
Nulls First
nulls 전에 널 정렬을 지정합니다. 이것은 기본값입니다desc
지정되어 있습니다.
널 마지막
널이 아닌 후에 널이 정렬되도록 지정합니다. 이것은 기본값입니다desc
지정되지 않았습니다.
Nulls Distine
널 뚜렷하지 않음
고유 인덱스의 경우 널 값이 별개로 간주되어야하는지 여부를 지정합니다 (동일하지 않음). 기본값은 고유 인덱스가 열에 여러 널 값을 포함 할 수 있도록 구별된다는 것입니다.
Storage_Parameter
인덱스-메드 특정 스토리지 매개 변수의 이름. 보다인덱스 스토리지 매개 변수자세한 내용은 아래.
TableSpace_name
메이저 토토 사이트를 생성 할 테이블 스페이스. 지정되지 않은 경우default_tablespace상담 또는temp_tablespaces임시 테이블의 메이저 토토 사이트 용
술어
부분 색인에 대한 제약 조건 표현.
선택 사항with
조항을 지정합니다스토리지 매개 변수인덱스. 각 인덱스 방법에는 자체 허용 스토리지 매개 변수 세트가 있습니다. B-Tree, Hash, Gist 및 SP-Gist Index 메소드는 모두이 매개 변수를 받아들입니다.
FillFactor
(Integer
) #인덱스의 필수는 인덱스 메소드가 색인 페이지를 포장하려고하는 방법을 결정하는 백분율입니다. B- 트리의 경우 초기 인덱스 빌드 중에 잎 페이지 가이 백분율로 채워지고 오른쪽에서 인덱스를 확장 할 때 (새로운 가장 큰 핵심 값 추가). 이후에 페이지가 완전히 가득 차면 나뉘어지면서 온 디스크 인덱스 구조가 단편화됩니다. B- 트리는 90의 기본 FillFactor를 사용하지만 10에서 100까지의 정수 값을 선택할 수 있습니다.
많은 인서트 및/또는 업데이트가 예상되는 테이블의 B- 트리 인덱스가 낮은 FillFactor 설정에서 혜택을받을 수 있습니다색인 생성
시간 (테이블에 벌크 로딩을 따라 가면). 50-90의 범위의 값은 유용하게 할 수 있습니다“Smooth Out”therateB-Tree Index의 초기 수명 동안 페이지 분할 | B- 트리 상향식 색인 삭제 기술에 설명 된섹션 64.1.4.2“추가”저장할 페이지의 공간“추가”튜플 버전, FillFactor의 영향을받을 수 있습니다 (효과는 일반적으로 중요하지는 않지만)
다른 특정 경우에 FillFactor를 100으로 늘리는 것이 유용 할 수 있습니다색인 생성
공간 활용을 극대화하는 방법으로 시간. 테이블이 정적이라고 확신 할 때만 이것을 고려해야합니다 (즉, 삽입물이나 업데이트의 영향을받지 않을 것입니다). 100 가지 위험에 대한 채우기 설정Harming성능 : 몇 가지 업데이트 또는 인서트조차도 갑자기 페이지 분할이 홍수됩니다.
다른 인덱스 방법은 FillFactor를 다르지만 대략적으로 유사한 방식으로 사용합니다. 기본 FillFactor는 메소드마다 다릅니다.
B- 트리 색인이 추가 로이 매개 변수를 받아들입니다.
retmuplice_items
(부울
) #B-Tree 중복 제거 기술의 사용법 제어섹션 64.1.4.3. 설정on
또는OFF
최적화를 활성화 또는 비활성화합니다. (대체 철자on
및OFF
에 설명 된대로 허용PostgreSQL : 문서 : 17 : 19.1. 매개 스포츠 토토 사이트 설정.) 기본값은입니다.on
.
회전retmuplication_items
viaAlter Index
향후 삽입물이 중복 제거를 방지하는 것을 방지하지만 그 자체로 기존 게시 목록을 만들지는 않습니다. 튜플은 표준 튜플 표현을 사용합니다..
GIST 인덱스 추가 로이 매개 변수를 수락합니다.
버퍼링
(enum
) #섹션 64.2.4.1는 메이저 토토 사이트를 구축하는 데 사용됩니다. 와 함께OFF
버퍼링이 비활성화되어on
활성화되고auto
처음에는 비활성화되었지만 메이저 토토 사이트 크기가 도달하면 날개를 켜십시오exply_cache_size. 기본값은auto
. 정렬 된 빌드가 가능하면 버퍼링 된 빌드 대신에 사용됩니다.buffering = on
지정되어 있습니다.
진 인덱스는 다른 매개 변수를 허용합니다 :
Fastupdate
(부울
) #이 설정은에 설명 된 빠른 업데이트 기술의 사용법을 제어합니다섹션 64.4.4.1. 부울 매개 변수입니다 :on
빠른 업데이트 활성화,OFF
비활성화합니다. 기본값은on
.
회전Fastupdate
OFF VIAAlter Index
향후 삽입이 보류중인 인덱스 항목 목록으로 들어가는 것을 방지하지만 그 자체로는 이전 항목을 플러시하지 않습니다. 당신은 원할 수도 있습니다진공
테이블 또는 전화gin_clean_pending_list
나중에 보류중인 목록이 비워 지도록 기능합니다.
gin_pending_list_limit
(정수
) #Customgin_pending_list_limit매개 변수. 이 값은 킬로 바이트로 지정되어 있습니다.
브린인덱스는 다른 매개 변수를 허용합니다 :
pages_per_range
(정수
) #a 각 항목에 대해 하나의 블록 범위를 구성하는 테이블 블록 수를 정의합니다.브린색인 (참조섹션 64.5.1자세한 내용은). 기본값은128
.
AutosumMarize
(부울
) #다음 페이지에서 삽입이 감지 될 때마다 요약 실행이 이전 페이지 범위에 대해 대기인지 여부를 정의합니다. 보다섹션 64.5.1.1자세한 내용은. 기본값은OFF
.
색인 생성은 데이터베이스의 정기적 인 작동을 방해 할 수 있습니다. 보통PostgreSQL쓰기에 대해 인덱싱 할 테이블을 잠그고 테이블의 단일 스캔으로 전체 인덱스 빌드를 수행합니다. 다른 트랜잭션은 여전히 테이블을 읽을 수 있지만 테이블에 행을 삽입, 업데이트 또는 삭제하려고하면 인덱스 빌드가 완료 될 때까지 차단됩니다. 시스템이 라이브 프로덕션 데이터베이스 인 경우 심각한 영향을 줄 수 있습니다. 매우 큰 테이블을 색인화하는 데 많은 시간이 걸릴 수 있으며, 작은 테이블의 경우, 인덱스 빌드는 제작 시스템에 대해 용납 할 수없는 기간 동안 작가를 잠글 수 있습니다..
PostgreSQL쓰기를 잠그지 않고 빌드 인덱스를 지원합니다. 이 방법은를 지정하여 호출됩니다.동시에
옵션색인 생성
. 이 옵션이 사용될 때PostgreSQL테이블의 두 스캔을 수행해야하며, 또한 인덱스를 수정하거나 종료 할 수있는 모든 기존 트랜잭션을 기다려야합니다. 따라서이 방법은 표준 색인 빌드보다 더 많은 총 작업이 필요하며 완료하는 데 훨씬 더 오래 걸립니다. 그러나 인덱스가 구축되는 동안 일반 작업이 계속 될 수 있으므로이 방법은 생산 환경에서 새로운 인덱스를 추가하는 데 유용합니다. 물론 인덱스 생성에 의해 부과 된 추가 CPU 및 I/O 부하는 다른 작업 속도를 늦출 수 있습니다.
동시 메이저 토토 사이트 빌드에서 메이저 토토 사이트는 실제로 A로 입력됩니다“Invalid”한 번의 트랜잭션에서 시스템 카탈로그에 색인을 인덱싱 한 다음 두 개의 트랜잭션에서 두 개의 테이블 스캔이 발생합니다. 각 테이블 스캔 전에 인덱스 빌드는 테이블이 종료 될 기존 트랜잭션을 기다려야합니다. 두 번째 스캔 후 인덱스 빌드는 스냅 샷이있는 트랜잭션을 기다려야합니다 (참조PostgreSQL : 문서 : 17 : 13 장. 스포츠 토토 사이트 제어) 관련 인덱스가 부분적이거나 간단한 열 참조가 아닌 열이있는 경우 다른 테이블에서 동시 인덱스의 단계에서 사용되는 트랜잭션을 포함하여 종료되는 두 번째 스캔을 포기합니다. 마지막으로 인덱스가 표시 될 수 있습니다“유효”그리고 사용할 준비가되었고색인 생성
명령이 종료됩니다. 그러나 그럼에도 불구하고 메이저 토토 사이트는 쿼리에 대해 즉시 사용할 수 없을 수 있습니다. 최악의 경우 메이저 토토 사이트 빌드의 시작을 미리 발행하는 트랜잭션이 존재하는 한 사용할 수 없습니다..
고유 한 지수의 교착 상태 또는 고유성 위반과 같은 테이블을 스캔하는 동안 문제가 발생하는 경우색인 생성
명령은 실패하지만 뒤에 남겨 둡니다.“Invalid”색인. 이 색인은 불완전 할 수 있으므로 쿼리 목적으로 무시됩니다. 그러나 여전히 업데이트 오버 헤드를 소비합니다. 그만큼PSQL \ d
명령은 그러한 색인을로보고합니다.잘못된
:
postgres =# \ d 탭 "public.tab"테이블 열 | 유형 | Collation | 무효 | 기본 --------+--------+------------------------------- col | 정수 | | | 인덱스 : "idx"btree (col) 잘못된
그러한 경우 권장되는 복구 방법은 메이저 토토 사이트를 삭제하고 다시 수행하는 것입니다동시에 색인 생성
. (또 다른 가능성은로 색인을 재건하는 것입니다.Reindex index 동시에
).
고유 한 인덱스를 동시에 구축 할 때의 또 다른 경고는 두 번째 테이블 스캔이 시작될 때 독창성 제약이 이미 다른 트랜잭션에 대해 시행되고 있다는 것입니다. 이는 인덱스를 사용할 수있게되기 전에 또는 인덱스 빌드가 결국 실패한 경우 조건 위반이 다른 쿼리에서보고 될 수 있음을 의미합니다. 또한 두 번째 스캔에서 실패가 발생하면“Invalid”메이저 토토 사이트는 계속해서 고유성 제약을 시행하고 있습니다.
동시 표현식 인덱스 및 부분 인덱스의 동시 빌드가 지원됩니다. 이러한 표현식의 평가에서 발생하는 오류는 고유 한 제약 위반에 대해 위에서 설명한 것과 유사한 행동을 유발할 수 있습니다.
일반 색인 빌드는 동일한 테이블의 다른 일반 색인 빌드가 동시에 발생할 수 있지만 한 번에 테이블에서 하나의 동시 인덱스 빌드 만 발생할 수 있습니다. 두 경우 모두 인덱스가 구축되는 동안 테이블의 스키마 수정이 허용되지 않습니다. 또 다른 차이점은 정기적 인 것입니다색인 생성
명령은 트랜잭션 블록 내에서 수행 할 수 있지만동시에 색인 생성
할 수 없습니다.
분할 된 테이블의 인덱스에 대한 동시 빌드는 현재 지원되지 않습니다. 그러나 각 파티션에서 개별적으로 인덱스를 동시에 빌드 한 다음 파티가 된 테이블에 쓰기가 잠겨있는 시간을 줄이기 위해 파티션 된 인덱스를 비공식적으로 만들 수 있습니다. 이 경우, 분할 된 인덱스를 구축하는 것은 메타 데이터 전용 작업입니다.
참조토토 : 문서 : 17 : 11 장. 인덱스메이저 토토 사이트를 사용할 수있는시기, 사용하지 않을 때, 어떤 특정 상황에서 유용 할 수 있는지에 대한 정보는
현재 B-Tree, Gist, Gin 및 Brin Index 메서드만이 다중 키 열인 인덱스를 지원합니다. 여러 키 열이있을 수 있는지 여부포함
열을 인덱스에 추가 할 수 있습니다. 인덱스는를 포함하여 최대 32 개의 열을 가질 수 있습니다.포함
열. (이 한도는 빌드시 변경 될 수 있습니다PostgreSQL.) B-Tree 만 현재 고유 인덱스를 지원합니다.
an운영자 클래스옵션 매개 변수와 함께 인덱스의 각 열에 대해 지정할 수 있습니다. 연산자 클래스는 해당 열의 인덱스에서 사용하도록 연산자를 식별합니다. 예를 들어, 4 바이트 정수의 B-Tree 지수는를 사용합니다.int4_ops
클래스; 이 연산자 클래스에는 4 바이트 정수에 대한 비교 기능이 포함되어 있습니다. 실제로 열 데이터 유형의 기본 연산자 클래스로는 일반적으로 충분합니다. 운영자 클래스를 갖는 주요 요점은 일부 데이터 유형의 경우 둘 이상의 의미있는 순서가있을 수 있다는 것입니다. 예를 들어, 복잡한 수 데이터 유형을 절대 값 또는 실제 부분별로 정렬 할 수 있습니다. 데이터 유형에 대한 두 개의 운영자 클래스를 정의한 다음 인덱스를 만들 때 적절한 클래스를 선택하여이를 수행 할 수 있습니다. 운영자 클래스에 대한 자세한 정보는입니다.PostgreSQL : 문서 : 17 : 11.10. 토토 결과 수업 및 토토 결과 가족and inPostgreSQL : 문서 : 17 : 36.16. 와이즈 토토에 대한 확장 인터페이스.
언제색인 생성
파티션 된 테이블에서 호출되며, 기본 동작은 모든 파티션으로 재구성하여 모두 일치하는 인덱스를 갖도록하는 것입니다. 각 파티션은 먼저 동등한 인덱스가 이미 존재하는지 여부를 결정하기 위해 먼저 확인되며, 그렇다면 해당 인덱스가 생성되는 인덱스에 대한 파티션 인덱스로 첨부되어 부모 색인이됩니다. 일치하는 인덱스가 없으면 새 인덱스가 생성되어 자동으로 첨부됩니다. 각 파티션에서 새 인덱스의 이름은 명령에 인덱스 이름이 지정되지 않은 것처럼 결정됩니다. 인 경우전용
옵션이 지정되고 재귀가 수행되지 않으며 인덱스가 유효하지 않습니다. (Alter Index ... 첨부 파티션
모든 파티션이 일치하는 인덱스를 얻으면 인덱스를 유효하게 표시합니다.) 그러나 미래에 생성 된 모든 파티션은테이블 생성 ... 파티션
|전용
지정되어 있습니다.
순서 스캔을 지원하는 색인 방법의 경우 (현재, B- 트리 만), 옵션 조항ASC
, desc
, Nulls First
및/또는널 마지막
지정하여 메이저 토토 사이트의 정렬 순서를 수정할 수 있습니다. 정렬 된 메이저 토토 사이트를 앞뒤로 스캔 할 수 있으므로 일반적으로 단일 열을 만드는 것은 유용하지 않습니다.desc
index - 정렬 주문은 이미 일반 색인으로 사용할 수 있습니다. 이러한 옵션의 값은 혼합 주문 쿼리에서 요청한 정렬 순서와 일치하는 멀티 컬럼 인덱스가 생성 될 수 있다는 것입니다.선택 ... X ASC, y desc 주문
. 그만큼nulls
지원 해야하는 경우 옵션이 유용합니다“Nulls Sort Low”기본값이 아닌 동작“Nulls Sort High”, 정렬 단계를 피하기 위해 메이저 토토 사이트에 의존하는 쿼리로
시스템은 정기적으로 모든 테이블 열에 통계를 수집합니다. 새로 만들어진 비 표현 지수는 이러한 통계를 즉시 사용하여 인덱스의 유용성을 결정할 수 있습니다. 새로운 표현 인덱스의 경우 실행이 필요합니다분석
또는 대기autovacuum daemon이 인덱스에 대한 통계를 생성하기 위해 테이블을 분석하려면
while색인 생성
실행 중입니다.search_path일시적으로 변경PG_CATALOG, PG_TEMP
.
대부분의 메이저 토토 사이트 방법의 경우 메이저 토토 사이트 생성 속도는의 설정에 따라 다릅니다.maintenance_work_mem. 더 큰 값은 실제로 사용 가능한 메모리의 양보다 크게 만들지 않는 한 메이저 토토 사이트 생성에 필요한 시간을 줄일 수 있습니다.
PostgreSQL테이블 행을 더 빨리 처리하기 위해 여러 CPU를 활용하면서 메이저 토토 사이트를 구축 할 수 있습니다. 이 기능은로 알려져 있습니다.병렬 메이저 토토 사이트 빌드. 구축 인덱스를 병렬로 지원하는 인덱스 방법 (현재 B- 트리 및 브린),Maintenance_Work_mem
시작한 작업자 프로세스 수에 관계없이 각 메이저 토토 사이트 빌드 작업에서 전체적으로 사용할 수있는 최대 메모리 양을 지정합니다. 일반적으로 비용 모델은 요청해야 할 작업자 프로세스 수를 자동으로 결정합니다.
병렬 메이저 토토 사이트 빌드는 증가함에 혜택maintenance_work_mem
동등한 직렬 인덱스 빌드가 이점이 거의 없거나 전혀없는 경우. 참고maintenance_work_mem
병렬 작업자가 적어도 a를 가져야하므로 요청 된 근로자 프로세스 수에 영향을 줄 수 있습니다.32MB
총계maintenance_work_mem
예산. 나머지가 있어야합니다32MB
리더 프로세스를 공유하십시오. 증가max_parallel_mainenage_workers더 많은 작업자가 사용될 수 있으므로 메이저 토토 사이트 빌드가 아직 I/O 바운드가 아닌 한 메이저 토토 사이트 생성에 필요한 시간이 줄어 듭니다. 물론, 그렇지 않으면 유휴 상태가 될만한 충분한 CPU 용량이 있어야합니다.
값 설정Parallel_Workers
viaAlter Table
a에 몇 개의 병렬 작업자 프로세스가 요청 될 수 있는지 직접 제어합니다색인 생성
테이블에 대한. 이것은 비용 모델을 완전히 우회하고를 방지합니다.maintenance_work_mem
얼마나 많은 병렬 근로자가 요청되는지에 영향을 미칩니다. 환경Parallel_Workers
Alter Table
모든 경우 테이블에서 병렬 메이저 토토 사이트 빌드를 비활성화합니다.
재설정하고 싶을 수도 있습니다Parallel_Workers
메이저 토토 사이트 빌드 조정의 일부로 설정 한 후. 이것은 쿼리 계획에 대한 부주의 한 변경을 피합니다.Parallel_Workers
영향all병렬 테이블 스캔.
while색인 생성
with동시에
옵션은 특별한 제한없이 병렬 빌드를 지원합니다. 첫 번째 테이블 스캔 만 실제로 병렬로 수행됩니다.
useDrop Index
색인을 제거하려면
장기 거래와 마찬가지로색인 생성
테이블에서 동시에 제거 할 수있는 튜플에 영향을 줄 수 있습니다진공
다른 테이블에서.
사전 릴리스PostgreSQLr-tree index 방법이있었습니다. 이 방법은 GIST 방법에 비해 큰 장점이 없기 때문에 제거되었습니다. 만약에RTREE 사용
지정되어 있습니다.색인 생성
|GIST 사용
, 오래된 데이터베이스를 GIST로 전환하기 위해.
각 백엔드 실행색인 생성
에서 진행 상황을보고합니다PG_STAT_PROGRESS_CREATE_INDEX
보기. 보다섹션 27.4.4자세한 내용.
열에서 고유 한 b- 트리 색인을 생성하려면제목
표에서영화
:
필름에서 고유 한 색인 제목 _idx 만들기 (제목);
열에서 고유 한 b- 트리 색인을 생성하려면제목
포함 된 열감독
and등급
표에서영화
:
필름에 고유 한 색인 제목 _idx 만들기 (제목) 포함 (감독, 등급);
중복 방지 장애가있는 B- 트리 색인 생성 :
(title)와 함께 (title)에서 index title_idx를 만듭니다 (attremuply_items = off);
표현식에 대한 색인 생성Lower (Title)
, 효율적인 사례 감수성 검색 허용 :
필름에서 색인 생성 ((lower (title));
(이 예에서는 인덱스 이름을 생략하기로 선택한 경우 시스템이 이름, 일반적으로를 선택합니다.films_lower_idx
.)
Default Collation이 아닌 인덱스 생성 :
영화에서 인덱스 제작 _idx_german 만들기 (Title Collate "de_de");
널의 비 디폴리 정렬 순서로 색인을 생성하려면 :
영화에서 인덱스 제작 _idx_nulls_low (Title Nulls First);
비 분리 채우기 요소가있는 메이저 토토 사이트 생성 :
필름 (title)에서 고유 인덱스 제목 _idx 생성 (fillfactor = 70);
agin빠른 업데이트가있는 색인 비활성화 :
with (fastupdate = off);를 사용하여 gin (locations)을 사용하여 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 표준에는 메이저 토토 사이트에 대한 조항이 없습니다.
문서에 올바른 것이 없다면 일치하지 않습니다. 특정 기능에 대한 귀하의 경험 또는 추가 설명이 필요합니다. 사용이 양식문서 문제를보고하려면