2025 년 9 월 4 일 :사설 토토 18 RC 1 릴리스!
이 문서는 지원되지 않는 버전의 사설 토토을위한 것입니다.
당신은에 대해 같은 페이지를 볼 수 있습니다윈 토토 PostgreSQL : 문서 : 17 : Cluster버전 또는 위에 나열된 다른 지원 버전 중 하나입니다.

클러스터

클러스터 - 인덱스에 따라 테이블 클러스터

시놉시스

클러스터 [Verbose]table_name[사용index_name]
클러스터 [Verbose]

설명

클러스터지침사설 토토table_nameindex_name. 인덱스는 이미 정의되어 있어야합니다table_name.

테이블이 클러스터링되면 인덱스 정보에 따라 물리적으로 재정렬됩니다. 클러스터링은 일회성 작업입니다. 테이블이 업데이트되면 변경 사항이 클러스터되지 않습니다. 즉, 인덱스 순서에 따라 새 행 또는 업데이트 된 행을 저장하려는 시도는 없습니다. (원하는 경우, 명령을 다시 발행하여 정기적으로 재 클러스터 할 수 있습니다. 또한 테이블 설정FillFactor100% 미만의 스토리지 매개 변수는 업데이트 중 클러스터 순서를 보존하는 데 도움이 될 수 있습니다. 업데이트 된 행이 충분한 공간을 사용할 수있는 경우 업데이트 된 행이 같은 페이지에 보관되어 있으므로)

테이블이 클러스터링되면사설 토토클러스터 된 색인을 기억합니다. 양식클러스터table_name이전과 동일한 인덱스를 사용하여 테이블을 Reclusters. 당신은 또한를 사용할 수 있습니다.클러스터또는클러스터없이 설정형태토토 꽁 머니 PostgreSQL향후 클러스터 작업에 사용할 인덱스를 설정하거나 이전 설정을 지우려면

클러스터매개 변수 Reclusters없이 호출 사용자가 소유 한 현재 데이터베이스의 이전에 클러스터 된 모든 테이블 또는 슈퍼 사용자가 호출 할 경우 모든 테이블. 이 형태의클러스터트랜잭션 블록 내부에서 실행할 수 없습니다.

테이블이 클러스터링되면액세스 독점잠금이 획득되었습니다. 이것은 다른 데이터베이스 작업 (읽기 및 쓰기)이 테이블에서 작동하는 것을 방지합니다.클러스터완료되었습니다.

매개 변수

table_name

표의 이름 (스키마 자격).

index_name

색인 이름.

Verbose

각 테이블이 클러스터링 될 때 진행 보고서를 인쇄합니다.

노트

테이블 내에서 단일 행에 무작위로 액세스하는 경우 테이블의 데이터의 실제 순서는 중요하지 않습니다. 그러나 다른 데이터보다 일부 데이터에 더 액세스하는 경향이 있고 함께 그룹화하는 색인이 있으면이 도움이 될 것입니다.클러스터. 테이블에서 인덱스 된 값 범위 또는 일치하는 여러 행이있는 단일 인덱스 값을 요청하는 경우클러스터인덱스가 일치하는 첫 번째 행의 테이블 페이지를 식별하면 일치하는 다른 모든 행은 이미 동일한 테이블 페이지에있을 것이므로 디스크 액세스를 저장하고 쿼리 속도를 높이기 때문에 도움이됩니다..

클러스터지정된 인덱스의 인덱스 스캔을 사용하여 테이블을 다시 정렬 할 수 있거나 (인덱스가 b- 트리 인 경우) 순차적 스캔과 정렬을 할 수 있습니다. 플래너 비용 매개 변수 및 사용 가능한 통계 정보를 기반으로 더 빠른 방법을 선택하려고 시도합니다.

인덱스 스캔이 사용되면 테이블 데이터가 인덱스 순서로 포함 된 테이블의 임시 사본이 작성됩니다. 테이블의 각 지수의 임시 사본도 생성됩니다. 따라서 디스크에 테이블 크기의 합 및 인덱스 크기와 동일한 디스크의 여유 공간이 필요합니다.

순차적 인 스캔 및 정렬을 사용하면 임시 정렬 파일도 생성되므로 피크 임시 공간 요구 사항이 테이블 크기의 두 배나 인덱스 크기가됩니다. 이 방법은 종종 인덱스 스캔 방법보다 빠르지 만 디스크 공간 요구 사항을 견딜 수없는 경우 일시적으로 설정 하여이 선택을 비활성화 할 수 있습니다enable_sorttooff.

설정하는 것이 좋습니다maintenance_work_mem합리적으로 큰 값으로 (그러나 당신이 할 수있는 RAM의 양보다클러스터작동) 클러스터링 전.

플래너는 테이블 순서에 대한 통계를 기록하기 때문에 실행하는 것이 좋습니다분석새로 클러스터 된 테이블에서. 그렇지 않으면 플래너는 쿼리 계획을 열악하게 선택할 수 있습니다.

왜냐하면클러스터클러스터링 된 인덱스를 기억하고, 처음으로 클러스터링 원하는 테이블을 클러스터링 한 다음 실행하는 주기적 유지 보수 스크립트를 설정할 수 있습니다클러스터원하는 테이블이 주기적으로 재활용되도록 매개 변수가 없으면

테이블 클러스터직원지수를 기준으로직원 _ind:

직원을 사용하는 클러스터 직원 _ind;

클러스터직원이전에 사용 된 것과 동일한 인덱스를 사용한 테이블 :

클러스터 직원;

클러스터 이전에 클러스터 된 데이터베이스의 모든 테이블 :

클러스터;

호환성

없음클러스터SQL 표준의 명령문.

구문

클러스터index_nameontable_name

Pre-8.3과의 호환성을 위해 지원됩니다.사설 토토버전.

참조

ClusterDB