[ 고유 ] 인덱스 스포츠 토토 결과 [ 동시 ] [이름] 켜짐테이블[ 사용 중방법 ]
( { 열 | ( 표현 ) } [ opclass] [ ASC | DESC ] [ NULLS 첫 번째 | 마지막 ] [, ...] )
[ 와 (storage_parameter = 값[, ... ] ) ]
[테이블스페이스테이블스페이스]
[어디에서술어 ]
색인 스포츠 토토 결과색인을 생성합니다 지정된 테이블의 지정된 열. 인덱스는 주로 데이터베이스 성능을 향상시키는 데 사용됩니다(그러나 부적절하게 사용하면 성능이 저하될 수 있습니다.
색인의 키 필드는 열 이름으로 지정됩니다. 또는 괄호 안에 표현을 써도 됩니다. 다중 인덱스 방법이 다중 열을 지원하는 경우 필드를 지정할 수 있습니다. 색인.
색인 필드는 값에서 계산된 표현식일 수 있습니다. 테이블 행의 하나 이상의 열 중 하나입니다. 이 기능을 사용할 수 있습니다 일부 변환을 기반으로 데이터에 대한 빠른 액세스를 얻으려면 기본 데이터. 예를 들어, 다음에서 계산된 인덱스입니다.상단(열)다음 조항을 허용하겠습니다어디에서 상단(열) = 'JIM'색인을 사용합니다.
PostgreSQL색인 제공 방법 B-트리, 해시, GiST 및 GIN. 사용자는 또한 자신의 자신만의 인덱스 메소드가 있지만 상당히 복잡합니다.
때어디에서절이 존재합니다. a부분 색인생성되었습니다. 부분적인 인덱스는 특정 부분에 대한 항목만 포함하는 인덱스입니다. 일반적으로 테이블보다 인덱싱에 더 유용한 부분입니다. 나머지 테이블. 예를 들어, 다음과 같은 테이블이 있다면 청구되지 않은 주문과 청구되지 않은 주문이 모두 포함되어 있습니다. 주문은 전체 테이블에서 작은 부분을 차지하지만 자주 사용되는 섹션이므로 다음을 생성하여 성능을 향상시킬 수 있습니다. 해당 부분에 대한 색인입니다. 또 다른 가능한 적용은 다음과 같습니다. 사용어디에서와고유의 하위 집합에 고유성을 적용합니다. 테이블. 참조PostgreSQL : 문서 : 9.0 : 스포츠 토토 색인용 추가 논의.
다음에 사용된 표현식어디절은 기본 테이블의 열만 참조할 수 있지만 인덱싱되는 열뿐만 아니라 모든 열을 사용할 수 있습니다. 현재, 하위 쿼리 및 집계 표현식도 금지됩니다.어디. 동일한 제한사항이 다음에도 적용됩니다. 표현식인 인덱스 필드입니다.
색인 정의에 사용되는 모든 함수와 연산자는 다음을 충족해야 합니다. 수"불변", 즉 결과입니다. 그들의 주장에만 의존해야 하며 결코 외부에 의존해서는 안 됩니다. 영향(예: 다른 테이블의 내용이나 현재 시간). 이 제한은 인덱스의 동작이 다음과 같도록 보장합니다. 잘 정의되어 있습니다. 인덱스에서 사용자 정의 함수를 사용하려면 표현 또는어디에서절, 기억하세요 함수를 스포츠 토토 결과할 때 함수를 변경할 수 없도록 표시하세요.
시스템이 다음에서 중복된 값을 확인하도록 합니다. 인덱스가 생성될 때의 테이블(데이터가 이미 존재하는 경우) 및 데이터가 추가될 때마다. 데이터를 삽입하거나 업데이트하려고 시도합니다. 중복된 항목이 발생하면 오류.
이 옵션을 사용하면,PostgreSQL색인을 구축할 것입니다 동시 삽입을 방지하는 잠금을 사용하지 않고 테이블을 업데이트하거나 삭제합니다. 반면 표준 인덱스 빌드는 다음까지 테이블에 대한 쓰기(읽기는 제외)를 잠급니다. 끝났습니다. 언제 주의해야 할 몇 가지 주의 사항이 있습니다. 이 옵션 사용 — 참조건물 동시에 인덱스.
생성될 색인의 이름. 스키마 이름은 사용할 수 없습니다. 여기에 포함되어야 합니다. 인덱스는 항상 같은 위치에 생성됩니다. 스키마를 상위 테이블로 사용합니다. 이름이 생략된 경우,PostgreSQL다음을 선택합니다 상위 테이블의 이름과 색인이 생성된 열 이름입니다.
테이블의 이름(스키마 한정) 색인이 생성되었습니다.
사용할 색인 방법의 이름. 선택 사항은 다음과 같습니다.브트리, 해시, 요점및진. 기본 방법은 다음과 같습니다.브트리.
테이블의 열 이름.
테이블의 하나 이상의 열을 기반으로 한 표현식입니다. 표현은 일반적으로 주변에 써야 합니다. 구문에 표시된 대로 괄호를 사용합니다. 그러나 표현식의 형식이 다음과 같은 경우 괄호를 생략할 수 있습니다. 함수 호출의.
연산자 클래스의 이름. 자세한 내용은 아래를 참조하세요. 세부사항.
오름차순 정렬 순서를 지정합니다(이는 기본값).
내림차순 정렬 순서를 지정합니다.
null이 null이 아닌 항목보다 먼저 정렬되도록 지정합니다. 이것은 기본값은 다음과 같습니다.설명이다 지정되었습니다.
null이 null이 아닌 항목 이후에 정렬되도록 지정합니다. 이것은 기본값은 다음과 같습니다.설명아님 지정되었습니다.
인덱스 메소드별 저장 매개변수의 이름. 참조색인 저장 매개변수자세한 내용은.
인덱스를 생성할 테이블스페이스입니다. 그렇지 않은 경우 지정됨,default_tablespace상담되었거나temp_tablespaces임시 테이블의 인덱스용.
부분 색인에 대한 제약 조건 표현식입니다.
선택사항위드절이 지정함저장 매개변수색인용. 각각 index 메소드에는 자체적으로 허용되는 저장 매개변수 세트가 있습니다. 는 B-트리, 해시 및 GiST 인덱스 방법은 모두 단일을 허용합니다. 매개변수:
색인의 채우기 비율은 다음의 백분율입니다. 인덱스 메소드가 얼마나 가득 차도록 시도할지 결정합니다. 인덱스 페이지. B-트리의 경우 리프 페이지는 다음으로 채워집니다. 초기 인덱스 구축 중 백분율, 그리고 오른쪽의 인덱스 확장(새로 큰 키 추가) 값). 이후에 페이지가 완전히 가득 찬 경우, 분할되어 점차적으로 품질이 저하될 것입니다. 인덱스의 효율성. B-트리는 기본 채우기 요소를 사용합니다. 90이지만 10에서 100 사이의 정수 값을 선택할 수 있습니다. 테이블이 정적이면 fillfactor 100이 가장 좋습니다. 인덱스의 물리적 크기를 최소화하지만 업데이트된 테이블은 fillfactor가 작을수록 최소화하는 것이 좋습니다. 페이지 분할이 필요합니다. 다른 인덱스 방법은 다음을 사용합니다. 채우기 요소는 다르지만 대략 유사한 방식입니다. 는 기본 채우기 비율은 방법에 따라 다릅니다.
GIN 색인은 다른 매개변수를 허용합니다.
색인을 스포츠 토토 결과하면 일반 작업을 방해할 수 있습니다. 데이터베이스. 일반적으로포스트그레SQL인덱싱할 테이블을 쓰기에 대해 잠그고 다음을 수행합니다. 테이블을 한 번 스캔하여 전체 인덱스를 구축합니다. 기타 트랜잭션은 여전히 테이블을 읽을 수 있지만, 차단할 테이블의 행을 삽입, 업데이트 또는 삭제합니다. 인덱스 빌드가 완료될 때까지. 이로 인해 심각한 문제가 발생할 수 있습니다. 시스템이 라이브 프로덕션 데이터베이스인 경우 효과가 발생합니다. 매우 크다 테이블을 인덱싱하는 데 많은 시간이 걸릴 수 있으며, 규모가 작은 경우에도 테이블, 인덱스 빌드는 다음 기간 동안 작성자를 잠글 수 있습니다. 프로덕션 시스템에서는 용납할 수 없을 정도로 깁니다.
포스트그레SQL지원 쓰기를 잠그지 않고 인덱스를 구축합니다. 이 방법은 를 지정하여 호출됩니다.동시옵션색인 스포츠 토토 결과. 이 때 옵션이 사용되었습니다.PostgreSQL테이블을 두 번 스캔해야 하며 추가로 잠재적으로 사용할 수 있는 모든 기존 트랜잭션을 기다립니다. 종료할 인덱스입니다. 따라서 이 방법에는 더 많은 총계가 필요합니다. 표준 인덱스 빌드보다 작업이 더 오래 걸리며 훨씬 더 오래 걸립니다. 완료합니다. 그러나 정상적인 작동이 가능하기 때문에 인덱스가 작성되는 동안 계속 진행하면 이 방법이 유용합니다. 프로덕션 환경에 새 인덱스 추가 물론, 인덱스 생성으로 인한 추가 CPU 및 I/O 로드로 인해 속도가 느려질 수 있음 다른 작업.
동시 인덱스 빌드에서는 인덱스가 실제로 입력됩니다. 하나의 트랜잭션으로 시스템 카탈로그에 넣은 다음 두 테이블 스캔은 두 번째 및 세 번째 트랜잭션에서 발생합니다. 모두 활성 두 번째 테이블 스캔이 시작될 때의 트랜잭션뿐만 아니라 이미 테이블과 관련된 것들은 다음과 같은 가능성이 있습니다. 완료될 때까지 동시 인덱스 생성을 차단합니다. 언제 원본을 계속 사용할 수 있는 거래 확인 인덱스, 동시 인덱스 생성은 잠재적으로 다음을 통해 진행됩니다. 이전 트랜잭션을 한 번에 하나씩 방해하여 공유를 얻습니다. 이를 기다리기 위해 가상 트랜잭션 식별자를 잠급니다. 완료합니다.
테이블을 스캔하는 동안 다음과 같은 문제가 발생하는 경우 고유 인덱스의 고유성 위반,색인 스포츠 토토 결과명령은 실패하지만 남겨집니다 an"잘못됨"색인. 이 지수는 쿼리 목적으로는 무시될 수 있습니다. 불완전하다; 그러나 여전히 업데이트 오버헤드가 소모됩니다.psql \d명령은 다음과 같은 색인을 보고합니다.잘못됨:
postgres=# \d 탭
테이블 "public.tab"
칼럼 | 유형 | 수정자
------+---------+-----------
열 | 정수 |
인덱스:
"idx" btree(열) 잘못된
이러한 경우 권장되는 복구 방법은 색인을 생성하고 다시 수행해 보세요.색인 스포츠 토토 결과 동시에. (또 다른 가능성은 인덱스를 다시 작성하는 것입니다. 와 함께REINDEX. 그러나 이후REINDEX동시를 지원하지 않습니다. 빌드에서는 이 옵션이 매력적으로 보이지 않을 것입니다.)
고유 색인을 동시에 구축할 때의 또 다른 주의사항은 고유성 제약 조건이 이미 시행되고 있음 두 번째 테이블 스캔이 시작되면 다른 트랜잭션에 대해 이는 제약 조건 위반이 다음에서 보고될 수 있음을 의미합니다. 인덱스를 사용할 수 있게 되기 전의 다른 쿼리 또는 인덱스 빌드가 결국 실패하는 경우에도 마찬가지입니다. 또한 만약에 두 번째 스캔에서는 실패가 발생합니다."잘못됨"색인은 계속해서 나중에 고유성 제약 조건이 적용됩니다.
표현식 색인 및 부분 색인의 동시 빌드 지원됩니다. 이러한 평가에서 발생하는 오류 표현식은 설명된 것과 유사한 동작을 유발할 수 있습니다. 위의 고유 제약 조건 위반에 대해 설명합니다.
정규 인덱스 빌드는 다른 일반 인덱스 빌드를 허용합니다. 동일한 테이블이 병렬로 발생하지만 동시에 발생하는 테이블은 하나만 있습니다. 인덱스 구축은 한 번에 테이블에서 발생할 수 있습니다. 두 경우 모두 없음 테이블에 대한 다른 유형의 스키마 수정이 허용됩니다. 그 동안. 또 다른 차이점은 일반색인 스포츠 토토 결과명령은 다음 내에서 수행될 수 있습니다. 거래가 차단되었지만색인 스포츠 토토 결과 동시에할 수 없습니다.
참조토토 사이트 추천 : 문서 : 9.0 : 색인정보용 인덱스를 언제 사용할 수 있는지, 언제 사용하지 않는지, 어떤 특정 상황에 유용할 수 있는지.
| 주의 |
|
해시 인덱스 작업은 현재 WAL에 기록되지 않으므로 해시 인덱스를 다시 작성해야 할 수도 있습니다.REINDEX데이터베이스 충돌 후 기록되지 않은 변경 사항이었습니다. 또한 해시 인덱스의 변경 사항은 다음과 같습니다. 스트리밍 또는 파일 기반 복제를 통해 복제되지 않음 초기 기본 백업 이후 잘못된 답변을 제공합니다. 이후에 이를 사용하는 쿼리에 적용됩니다. 이러한 이유로, 해시 인덱스 사용은 현재 권장되지 않습니다. |
현재 B-tree, GiST 및 GIN 인덱스 방법만 지원됩니다. 다중 열 인덱스. 기본적으로 최대 32개의 필드를 지정할 수 있습니다. (이 제한은 구축 시 변경될 수 있습니다.PostgreSQL.) 현재는 B-트리만 지원합니다. 고유 인덱스.
안연산자 클래스지정 가능 인덱스의 각 열에 대해. 연산자 클래스는 해당 열의 인덱스에서 사용할 연산자입니다. 예를 들어, 4바이트 정수의 B-트리 인덱스는 다음을 사용합니다.int4_ops클래스; 이 연산자 클래스에는 다음이 포함됩니다. 4바이트 정수에 대한 비교 함수. 실제로는 열의 데이터 유형에 대한 기본 연산자 클래스는 일반적으로 충분하다. 연산자 클래스를 갖는 주요 요점은 다음과 같습니다. 일부 데이터 유형에는 하나 이상의 의미 있는 데이터가 있을 수 있습니다. 주문. 예를 들어, 복소수를 정렬하고 싶을 수도 있습니다. 절대값 또는 실수부로 데이터 유형을 지정합니다. 우리는 할 수 있었다 이는 데이터 유형에 대해 두 개의 연산자 클래스를 정의한 다음 인덱스를 만들 때 적절한 클래스를 선택합니다. 추가 정보 연산자 클래스에 대한 내용은 다음과 같습니다.섹션 11.9그리고섹션 35.14.
순서 있는 스캔을 지원하는 인덱스 방법의 경우(현재는 B-트리), 선택적 조항ASC, 설명, NULL 첫 번째및/또는NULL이 마지막임될 수 있습니다 인덱스의 정렬 순서를 수정하도록 지정되었습니다. 이후 순서가 지정된 인덱스는 앞으로 또는 뒤로 스캔할 수 있습니다. 일반적으로 단일 열을 스포츠 토토 결과하는 데 유용하지 않습니다.설명색인 — 해당 정렬 순서는 이미 일반 인덱스와 함께 사용할 수 있습니다. 이 옵션의 가치는 정렬과 일치하는 다중 열 인덱스를 생성할 수 있습니다. 다음과 같은 혼합 순서 쿼리에 의해 요청된 순서선택 ... ORDER BY x ASC, y DESC.NULLS지원이 필요한 경우 옵션이 유용합니다"null은 낮은 정렬"행동보다는 기본값"null은 높은 수준으로 정렬됩니다", 에 정렬 단계를 피하기 위해 인덱스에 의존하는 쿼리입니다.
대부분의 색인 방법에서 색인 스포츠 토토 결과 속도는 설정에 따라 다름maintenance_work_mem. 값이 클수록 인덱스 생성에 필요한 시간이 줄어들므로 실제로 메모리 양보다 크게 만들지 않는 한 사용할 수 있으며 이로 인해 시스템이 교체됩니다. 해시의 경우 인덱스, 값유효_캐시_크기색인 스포츠 토토 결과 시간과도 관련이 있습니다.PostgreSQL두 가지 중 하나를 사용합니다 추정 여부에 따라 해시 인덱스 생성 방법 인덱스 크기가 다음보다 크거나 작습니다.유효_캐시_크기. 최상의 결과를 얻으려면 다음을 확인하세요. 이 매개변수도 다음을 반영하는 것으로 설정되어 있습니다. 사용 가능한 메모리가 있으며 합계가maintenance_work_mem그리고유효_캐시_크기기계의 것보다 작습니다 RAM은 다른 프로그램에 필요한 공간보다 적습니다.
사용토토 커뮤니티 : 문서 : 9.0 : Drop Index제거하려면 색인.
이전 릴리스PostgreSQL또한 R-트리 인덱스 방법이 있었습니다. 이 방법은 제거되었습니다 왜냐하면 GiST 방식에 비해 큰 장점이 없었기 때문입니다. 만일rtree 사용지정되었습니다.색인 스포츠 토토 결과다음과 같이 해석합니다요점 사용, 이전 버전의 변환을 단순화하기 위해 데이터베이스를 GiST로.
열에 B-트리 인덱스를 스포츠 토토 결과하려면제목테이블에영화:
고유 인덱스 생성 title_idx ON 영화(제목);
표현식에 대한 색인을 생성하려면하위(제목), 효율적인 대소문자 구분 허용 검색:
영화에 대한 인덱스 생성((하위(제목)));
(이 예에서는 색인 이름을 생략하기로 선택했으므로 시스템은 일반적으로 이름을 선택합니다.films_lower_idx.)
기본이 아닌 정렬 순서로 색인을 스포츠 토토 결과하려면 널:
CREATE INDEX title_idx_nulls_low ON 영화(제목 NULLS FIRST);
기본값이 아닌 채우기 비율을 사용하여 색인을 생성하려면:
(fillfactor = 70)를 사용하여 영화(제목)에 고유 인덱스 title_idx 생성;
만들려면진색인 빠른 업데이트가 비활성화되었습니다:
gin (위치) WITH (fastupdate = off)를 사용하여 document_table에 INDEX gin_idx 생성;
열에 색인을 스포츠 토토 결과하려면코드테이블에영화그리고 색인을 가지고 있습니다 테이블스페이스에 상주함인덱스 공간:
CREATE INDEX code_idx ON 영화 (코드) TABLESPACE indexspace;
포인트 속성에 GiST 인덱스를 생성하여 다음을 수행할 수 있습니다. 변환 결과에 대해 상자 연산자를 효율적으로 사용 기능:
INDEX 포인트록 생성
ON 포인트 USING gist (box(location,location));
SELECT * FROM 포인트
WHERE 상자(위치, 위치) && '(0,0),(1,1)'::box;
쓰기를 잠그지 않고 색인을 생성하려면 테이블:
sales_table(수량)에 대해 동시에 sales_yangity_index 인덱스 생성;