배트맨 토토지침PostgreSQL테이블색인을 기준으로합니다 지정indexname. 색인 이미 정의되어 있어야TableName.
테이블이 배트맨 토토링되면 색인 정보. 배트맨 토토링은 일회성 작업입니다 이후 테이블이 업데이트되고 변경 사항이 배트맨 토토되지 않습니다. 즉, 새 또는 업데이트 된 튜플을 저장하려는 시도는 없습니다. 그들의 색인 순서에 따라. 원하는 경우 할 수 있습니다 명령을 다시 발행하여 주기적으로 재 포장합니다.
단일 행에 무작위로 액세스하는 경우 테이블, 힙 테이블의 데이터의 실제 순서는 다음과 같습니다. 중요하지 않습니다. 그러나 일부 데이터에 더 액세스하는 경향이있는 경우 다른 사람들, 그리고 그들을 함께 그룹화하는 색인이 있습니다. 사용 혜택배트맨 토토.
다른 곳배트맨 토토is 색인을 사용하여 여러 가지를 꺼내는 경우 도움이됩니다. 테이블에서 줄. 인덱스 범위를 요청하는 경우 테이블의 값 또는 단일 인덱스 값 일치하는 다중 행,배트맨 토토의지 인덱스가 힙 페이지를 식별하기 때문에 도움말 일치하는 첫 번째 줄, 일치하는 다른 모든 행은 아마도 이미 동일한 힙 페이지에 디스크 액세스를 저장하고 쿼리 속도를 높이십시오.
배트맨 토토 작동 중에 테이블의 임시 사본 인덱스 순서의 테이블 데이터를 포함하는 생성됩니다. 테이블의 각 지수의 임시 사본은 다음과 같이 작성됩니다. 잘. 따라서 적어도와 같은 디스크의 여유 공간이 필요합니다. 테이블 크기의 합 및 색인 크기.
배트맨 토토 보존 보조금, 상속, 색인, 외국 키, 및 표에 대한 다른 보조 정보.
Optimizer는 주문에 대한 통계를 기록하기 때문입니다 테이블의 경우, 실행하는 것이 좋습니다분석새로 배트맨 토토 된 테이블에서. 그렇지 않으면, Optimizer는 쿼리 계획을 제대로 선택할 수 있습니다.
데이터를 배트맨 토토하는 또 다른 방법이 있습니다. 그만큼배트맨 토토명령은 원래 테이블을 다시 표시합니다 지정한 색인의 순서를 사용합니다. 이것은 느릴 수 있습니다 큰 테이블에서 행이 힙에서 가져 왔기 때문에 색인 순서, 힙 테이블이 정렬되지 않은 경우 항목이 임의의 페이지에 있으므로 검색 된 디스크 페이지가 하나 있습니다. 모든 행이 움직였습니다. (PostgreSQL캐시가 있지만 큰 테이블의 대부분은 적합하지 않습니다. 캐시.) 테이블을 배트맨 토토링하는 다른 방법은 사용하는 것입니다
selectColumnList테이블 내로NewtableFrom테이블주문 byColumnList
PostgreSQL원하는 것을 생성하기 위해 절로 순서로 코드를 정렬합니다. 주문하다; 이것은 일반적으로 인덱스 스캔보다 훨씬 빠릅니다. 순서가없는 데이터. 그런 다음 오래된 테이블을 떨어 뜨리고 사용Alter Table ... Rename이름 바꾸Newtable이전 이름으로, 재현 테이블의 색인. 그러나이 접근법은 보존되지 않습니다 OID, 제약, 외국의 주요 관계, 부여 표의 특권 및 기타 보조 속성 --- 모두 이러한 항목은 수동으로 재현해야합니다.