유지보수 작업

이 페이지는 개발과 관련될 수 있는 다양한 데이터베이스 관련 작업을 상세히 설명합니다.

인덱스를 비활성화하는 것은 안전하지 않습니다

경고:

이전에 이 섹션은 인덱스를 제거하기 전에 유효하지 않도록 표시하는 절차를 설명했습니다.

더 이상 추천되지 않으며, 안전하지 않기 때문입니다.

인덱스를 제거하기 전에 비활성화하려는 특정 상황이 있을 수 있습니다:

  • 인덱스가 큰 테이블에 있고, 되돌릴 경우 재구축하는 데 오랜 시간이 걸릴 수 있습니다.
  • 인덱스가 완전히 드러나지 않은 방식으로 사용되고 있는지 여부가 불확실합니다.

이러한 상황에서는 인프라 팀 및 데이터베이스 팀과 조정하여 인덱스를 비활성화했습니다.

이 과정은 “Production Change” 템플릿으로 생산 인프라 문제를 열고

다음 명령어를 실행하였습니다:

-- 인덱스를 비활성화한 다음 인덱스를 사용하는 것으로 알려진 EXPLAIN 명령을 실행합니다:
UPDATE pg_index SET indisvalid = false WHERE indexrelid = 'index_issues_on_foo'::regclass;

-- 복제본에서 인덱스가 유효하지 않은지 확인합니다:
SELECT indisvalid FROM pg_index WHERE indexrelid = 'index_issues_on_foo'::regclass;

-- 무효화 롤백:
UPDATE pg_index SET indisvalid = true WHERE indexrelid = 'index_issues_on_foo'::regclass;

참고용으로 이 예제 인프라 문제를 참조하세요.