토토 커뮤니티 — 색인 재구축
토토 커뮤니티 [ ( VERBOSE ) ] 인덱스 | 표 | 스키마 | 데이터베이스 | 시스템이름
토토 커뮤니티인덱스 테이블에 저장된 데이터를 사용하여 인덱스를 다시 작성하고 인덱스의 이전 복사본을 대체합니다. 사용할 수 있는 몇 가지 시나리오가 있습니다.토토 커뮤니티:
색인이 손상되었으며 더 이상 유효한 데이터를 포함하지 않습니다. 이론적으로는 절대 이런 일이 발생해서는 안 되지만 실제로는 소프트웨어 버그나 하드웨어 오류로 인해 인덱스가 손상될 수 있습니다.토토 커뮤니티복구 방법을 제공합니다.
색인이 되었습니다“부풀어오르다”, 즉 비어 있거나 거의 비어 있는 페이지가 많이 포함되어 있습니다. 이는 B-트리 인덱스에서 발생할 수 있습니다.포스트그레SQL특정 일반적이지 않은 액세스 패턴에 따라.토토 커뮤니티은 데드 페이지 없이 인덱스의 새 버전을 작성하여 인덱스의 공간 소비를 줄이는 방법을 제공합니다. 참조사설 토토 : 문서 : 11 : 24.2. 일상적인 구매더 많은 정보를 원하시면.
인덱스에 대한 저장 매개변수(예: 채우기 요소)를 변경했으며 변경 사항이 완전히 적용되었는지 확인하고 싶습니다.
다음을 사용한 색인 빌드동시옵션이 실패하여 다음을 남깁니다.“잘못됨”색인. 이러한 인덱스는 쓸모가 없지만 사용하기 편리할 수 있습니다.토토 커뮤니티재구축합니다. 참고하세요토토 커뮤니티동시 빌드를 수행하지 않습니다. 생산을 방해하지 않고 인덱스를 구축하려면 인덱스를 삭제하고 다시 발행해야 합니다.동시에 인덱스 생성명령.
INDEX지정된 색인을 다시 생성하십시오.
표지정된 테이블의 모든 인덱스를 다시 생성합니다. 테이블에 보조 테이블이 있는 경우“토스트”테이블도 다시 색인화되었습니다.
스키마지정된 스키마의 모든 색인을 다시 생성하십시오. 이 스키마의 테이블에 보조 스키마가 있는 경우“토스트”테이블도 다시 색인화되었습니다. 공유 시스템 카탈로그의 인덱스도 처리됩니다. 이 형태는토토 커뮤니티트랜잭션 블록 내에서는 실행할 수 없습니다.
데이터베이스현재 데이터베이스 내의 모든 색인을 다시 생성하십시오. 공유 시스템 카탈로그의 인덱스도 처리됩니다. 이 형태는토토 커뮤니티트랜잭션 블록 내에서는 실행할 수 없습니다.
시스템현재 데이터베이스 내의 시스템 카탈로그에 대한 모든 색인을 다시 생성하십시오. 공유 시스템 카탈로그의 인덱스가 포함됩니다. 사용자 테이블의 인덱스는 처리되지 않습니다. 이 형태는토토 커뮤니티트랜잭션 블록 내에서는 실행할 수 없습니다.
이름재인덱싱할 특정 인덱스, 테이블 또는 데이터베이스의 이름. 인덱스 및 테이블 이름은 스키마로 한정될 수 있습니다. 현재,토토 커뮤니티 데이터베이스그리고토토 커뮤니티 시스템현재 데이터베이스만 다시 색인화할 수 있으므로 해당 매개변수는 현재 데이터베이스 이름과 일치해야 합니다.
상세각 색인이 다시 색인화될 때 진행 보고서를 인쇄합니다.
사용자 테이블의 인덱스 손상이 의심되는 경우 다음을 사용하여 해당 인덱스 또는 테이블의 모든 인덱스를 간단히 재구축할 수 있습니다.토토 커뮤니티 인덱스또는재인덱스 테이블.
시스템 테이블의 색인 손상을 복구해야 하는 경우 상황은 더욱 어렵습니다. 이 경우 시스템이 의심되는 인덱스 자체를 사용하지 않는 것이 중요합니다. (실제로 이런 종류의 시나리오에서는 손상된 인덱스에 대한 의존으로 인해 서버 프로세스가 시작 시 즉시 충돌하는 것을 확인할 수 있습니다.) 안전하게 복구하려면 서버를 다음으로 시작해야 합니다.-P옵션, 시스템 카탈로그 조회에 색인을 사용하지 못하게 하는 옵션입니다.
이를 수행하는 한 가지 방법은 서버를 종료하고 단일 사용자를 시작하는 것입니다.PostgreSQL서버가-P옵션이 명령줄에 포함되어 있습니다. 그럼,토토 커뮤니티 데이터베이스, 토토 커뮤니티 시스템, 토토 커뮤니티 테이블또는토토 커뮤니티 인덱스재구축하려는 정도에 따라 발행될 수 있습니다. 의심스러운 경우 다음을 사용하세요.리인덱스 시스템데이터베이스의 모든 시스템 색인 재구성을 선택합니다. 그런 다음 단일 사용자 서버 세션을 종료하고 일반 서버를 다시 시작합니다. 참조포스트그레스단일 사용자 서버 인터페이스와 상호작용하는 방법에 대한 자세한 내용은 참조 페이지를 참조하세요.
또는 일반 서버 세션을 다음으로 시작할 수 있습니다.-P명령줄 옵션에 포함되어 있습니다. 이를 수행하는 방법은 클라이언트마다 다르지만 전체적으로libpq기반 클라이언트에서는 다음을 설정할 수 있습니다.PGOPTIONS환경 변수 to-P클라이언트를 시작하기 전에. 이 방법에서는 다른 클라이언트를 잠글 필요는 없지만 복구가 완료될 때까지 다른 사용자가 손상된 데이터베이스에 연결하지 못하도록 하는 것이 현명할 수 있습니다.
토토 커뮤니티은 인덱스 내용이 처음부터 다시 작성된다는 점에서 인덱스 삭제 및 재생성과 유사합니다. 그러나 잠금 고려 사항은 다소 다릅니다.토토 커뮤니티인덱스의 상위 테이블에 대한 쓰기는 차단하지만 읽기는 차단하지 않습니다. 또한 시간이 걸립니다.접속 독점처리 중인 특정 인덱스를 잠그면 해당 인덱스를 사용하려는 읽기가 차단됩니다. 대조적으로,인덱스 삭제잠시 동안접속 독점상위 테이블을 잠그고 쓰기와 읽기를 모두 차단합니다. 후속색인 생성쓰기는 잠그지만 읽기는 잠그지 않습니다. 인덱스가 없기 때문에 어떤 읽기도 이를 사용하려고 시도하지 않습니다. 즉, 차단은 없지만 읽기는 비용이 많이 드는 순차 스캔으로 강제 실행될 수 있습니다.
단일 색인이나 테이블을 다시 색인화하려면 해당 색인이나 테이블의 소유자여야 합니다. 스키마 또는 데이터베이스를 다시 색인화하려면 해당 스키마 또는 데이터베이스의 소유자여야 합니다. 따라서 수퍼유저가 아닌 사람이 다른 사용자가 소유한 테이블의 인덱스를 재구축할 수 있는 경우도 있습니다. 다만, 특별한 예외가 있는 경우에는토토 커뮤니티 데이터베이스, 토토 커뮤니티 스키마또는토토 커뮤니티 시스템수퍼유저가 아닌 사람이 발행한 경우, 사용자가 카탈로그를 소유하지 않는 한 공유 카탈로그의 색인은 건너뜁니다(일반적으로 그렇지 않음). 물론 슈퍼유저는 언제든지 무엇이든 다시 색인화할 수 있습니다.
분할된 테이블 또는 분할된 인덱스 재인덱싱은 지원되지 않습니다. 대신 각 개별 파티션을 별도로 다시 색인화할 수 있습니다.
단일 색인 재구축:
토토 커뮤니티 인덱스 my_index;
테이블의 모든 인덱스를 다시 작성내_테이블:
토토 커뮤니티 테이블 my_table;
시스템 인덱스가 이미 유효한지 신뢰하지 않고 특정 데이터베이스의 모든 인덱스를 다시 빌드합니다.
$PGOPTIONS="-P" 내보내기$psql broken_db... broken_db= 토토 커뮤니티 DATABASE broken_db; broken_db= \q
없습니다토토 커뮤니티SQL 표준의 명령입니다.