이 문서는 지원되지 않는 PostgreSQL 버전에 대한 것입니다.
당신은 다음과 같은 페이지를 보고 싶을 수도 있습니다.PostgreSQL : 문서 : 17 : 스포츠 토토 베트맨버전 또는 위에 나열된 다른 지원 버전 중 하나를 사용하세요.

REINDEX

이름

REINDEX -- 색인 다시 작성

시놉시스

REINDEX  인덱스 | 표 | 데이터베이스 | 시스템이름[ 강제 ]

설명

REINDEX다음을 사용하여 색인을 다시 작성합니다. 인덱스 테이블에 저장된 데이터, 이전 복사본을 대체 색인. 사용할 수 있는 몇 가지 시나리오가 있습니다.REINDEX:

  • 색인이 손상되었으며 더 이상 유효한 항목이 없습니다. 데이터. 이론적으로는 절대 이런 일이 발생해서는 안 되지만 실제로는 소프트웨어 버그나 하드웨어로 인해 스포츠 토토 결과가 손상될 수 있습니다. 실패.REINDEX복구 제공 방법.

  • 색인이 되었습니다"부풀어오르다", 그거 비어 있거나 거의 비어 있는 페이지가 많이 포함되어 있습니까? 이런 일이 발생할 수 있습니다 B-트리 스포츠 토토 결과 포함포스트그레SQL일반적이지 않은 특정 액세스 패턴에 따라.REINDEX공간을 줄이는 방법을 제공합니다 새 버전의 스포츠 토토 결과를 작성하여 스포츠 토토 결과 소비 죽은 페이지 없이. 참조토토 결과 : 문서 : 9.3 : 일상적인 다시 인덱싱더 많은 정보를 원하시면.

  • 당신은 저장 매개변수(예: 채우기 요소)를 변경했습니다. 색인을 생성하고 변경 사항이 완전히 적용되었는지 확인하고 싶습니다. 효과.

  • 다음을 사용한 색인 빌드동시옵션이 실패하여 다음을 남깁니다."잘못됨"색인. 이러한 스포츠 토토 결과는 쓸모가 없지만 사용하기 편리할 수 있습니다.REINDEX재건축합니다. 참고하세요REINDEX동시 작업을 수행하지 않습니다. 빌드. 생산을 방해하지 않고 인덱스를 구축하려면 인덱스를 삭제하고 다시 발행해야 합니다.만들기 동시에 색인 생성명령.

매개변수

INDEX

지정된 색인을 다시 생성하십시오.

지정된 테이블의 모든 스포츠 토토 결과를 다시 생성합니다. 테이블에 보조"토스트"테이블입니다. 색인도 다시 생성되었습니다.

데이터베이스

현재 데이터베이스 내의 모든 색인을 다시 생성하십시오. 인덱스 공유 시스템 카탈로그도 처리됩니다. 이 형태는REINDEX트랜잭션 내에서는 실행할 수 없습니다. 차단합니다.

시스템

현재 시스템 카탈로그의 모든 색인을 다시 생성합니다. 데이터베이스. 공유 시스템 카탈로그의 인덱스가 포함됩니다. 인덱스 사용자 테이블에서는 처리되지 않습니다. 이 형태는REINDEX트랜잭션 내에서는 실행할 수 없습니다. 차단합니다.

이름

특정 인덱스, 테이블 또는 데이터베이스의 이름 다시 색인화되었습니다. 인덱스 및 테이블 이름은 스키마로 한정될 수 있습니다. 현재,REINDEX 데이터베이스그리고REINDEX 시스템현재 항목만 다시 색인화할 수 있습니다. 따라서 해당 매개변수는 현재 데이터베이스의 매개변수와 일치해야 합니다. 이름.

포스

이것은 더 이상 사용되지 않는 옵션입니다. 지정하면 무시됩니다.

참고

사용자 테이블의 색인 손상이 의심되는 경우 다음을 수행할 수 있습니다. 간단히 다음을 사용하여 해당 인덱스 또는 테이블의 모든 스포츠 토토 결과를 다시 작성하십시오.REINDEX 인덱스또는REINDEX 테이블.

부패로부터 회복해야 한다면 상황은 더욱 어려워집니다 시스템 테이블의 인덱스입니다. 이 경우에는 다음 사항이 중요합니다. 시스템에서는 의심스러운 인덱스 자체를 사용하지 않았습니다. (실제로, 이런 종류의 시나리오에서는 서버 프로세스가 손상된 파일에 의존하기 때문에 시작 시 즉시 충돌이 발생합니다. 인덱스.) 안전하게 복구하려면 서버를 다음으로 시작해야 합니다.-P옵션을 사용하지 못하게 하는 옵션입니다. 시스템 카탈로그 조회를 위한 색인입니다.

이를 수행하는 한 가지 방법은 서버를 종료하고 단일 사용자포스트그레SQL서버-P옵션이 명령줄에 포함되어 있습니다. 그럼,REINDEX 데이터베이스, REINDEX 시스템, REINDEX 표또는REINDEX 인덱스될 수 있습니다 재구성하려는 정도에 따라 발행됩니다. 의심스러운 경우, 사용REINDEX 시스템선택하다 데이터베이스의 모든 시스템 인덱스를 재구성합니다. 그런 다음 종료 단일 사용자 서버 세션을 종료하고 일반 서버를 다시 시작합니다. 참조포스트그레스자세한 내용은 참조 페이지 단일 사용자 서버와 상호 작용하는 방법에 대한 정보 인터페이스.

또는 일반 서버 세션을 다음으로 시작할 수 있습니다.-P명령줄 옵션에 포함되어 있습니다. 이를 수행하는 방법은 클라이언트마다 다르지만 모두libpq기반 클라이언트입니다. 설정 가능PGOPTIONS환경 변수를-P클라이언트를 시작하기 전에. 이 방법에서는 다른 항목을 잠글 필요는 없지만 다른 사용자가 복구가 완료될 때까지 손상된 데이터베이스에 연결 완료되었습니다.

REINDEX드롭과 유사하며 스포츠 토토 결과 내용이 다시 작성된다는 점에서 스포츠 토토 결과를 다시 만듭니다. 스크래치. 그러나 잠금 고려 사항은 다소 다릅니다.REINDEX쓰기는 차단하지만 읽기는 차단합니다. 스포츠 토토 결과의 상위 테이블. 또한 처리 중인 특정 스포츠 토토 결과는 해당 시도를 차단합니다. 해당 스포츠 토토 결과를 사용합니다. 대조적으로,스포츠 토토 결과 삭제일시적으로 상위 테이블에 배타적 잠금을 걸어 차단합니다. 쓰기와 읽기 둘 다. 후속만들기 스포츠 토토 결과쓰기는 잠그지만 읽기는 잠그지 않습니다. 스포츠 토토 결과가 아니기 때문에 거기에서는 어떤 읽기도 그것을 사용하려고 시도하지 않을 것입니다. 차단은 없지만 읽기가 비용이 많이 드는 순차적으로 강제 실행될 수 있음 스캔합니다.

단일 색인이나 테이블을 다시 색인화하려면 다음의 소유자여야 합니다. 해당 인덱스나 테이블. 데이터베이스를 다시 색인화하려면 소유자여야 합니다. 데이터베이스의 (그러므로 소유자는 인덱스를 다시 작성할 수 있습니다. 다른 사용자가 소유한 테이블). 물론 슈퍼유저는 언제든지 무엇이든 다시 색인화합니다.

이전PostgreSQL 8.1, REINDEX 데이터베이스처리된 시스템만 이름에서 예상할 수 있듯이 모든 인덱스가 아닌 인덱스입니다. 이 놀라움 요인을 줄이기 위해 변경되었습니다. 오래된 행동은 다음과 같이 사용 가능REINDEX 시스템.

이전PostgreSQL 7.4, REINDEX 테이블자동으로 수행되지 않음 TOAST 테이블을 처리하므로 해당 테이블은 별도의 테이블로 다시 인덱싱되어야 했습니다. 명령. 이는 여전히 가능하지만 중복됩니다.

단일 색인 재구축:

REINDEX 인덱스 my_index;

테이블의 모든 스포츠 토토 결과를 다시 작성내_테이블:

REINDEX 테이블 my_table;

신뢰하지 않고 특정 데이터베이스의 모든 색인을 재구축합니다. 이미 유효한 시스템 인덱스:

$ PGOPTIONS="-P" 내보내기
$ psql broken_db...
broken_db= REINDEX DATABASE broken_db;
broken_db= \q

호환성

없습니다REINDEXSQL의 명령 표준.