유지보수 작업
GitLab v19.4요약
이 페이지에서는 개발과 관련될 수 있는 다양한 데이터베이스 작업을 자세히 설명합니다. 이전에는 이 섹션에서 인덱스를 제거하기 전에 유효하지 않은 상태로 표시하는 절차를 설명했습니다. 인덱스를 제거하기 전에 비활성화하는 편이 나은 상황이 있습니다:
이 페이지에서는 개발과 관련될 수 있는 다양한 데이터베이스 작업을 자세히 설명합니다.
인덱스 비활성화는 안전하지 않습니다#
이전에는 이 섹션에서 인덱스를 제거하기 전에 유효하지 않은 상태로 표시하는 절차를 설명했습니다. 안전하지 않기 때문에 더 이상 권장하지 않습니다.
인덱스를 제거하기 전에 비활성화하는 편이 나은 상황이 있습니다:
- 인덱스가 대용량 테이블에 있어서 되돌릴 때 다시 빌드하는 데 오랜 시간이 걸리는 경우.
- 인덱스가 완전히 파악되지 않은 방식으로 사용되고 있는지 불확실한 경우.
이러한 상황에서는 "Production Change" 템플릿으로 프로덕션 인프라 이슈를 열어 인프라 팀 및 데이터베이스 팀과 협의한 다음 아래 명령을 실행하는 방식으로 인덱스를 비활성화했습니다:
-- Disable the index then run an EXPLAIN command known to use the index:
UPDATE pg_index SET indisvalid = false WHERE indexrelid = 'index_issues_on_foo'::regclass;
-- Verify the index is invalid on replicas:
SELECT indisvalid FROM pg_index WHERE indexrelid = 'index_issues_on_foo'::regclass;
-- Rollback the invalidation:
UPDATE pg_index SET indisvalid = true WHERE indexrelid = 'index_issues_on_foo'::regclass;
참고용으로 이 인프라 이슈 예시를 확인합니다.