VACUUM이란?
Postgres는 UPDATE/DELETE를 새 버전 추가 + 옛 버전 유지로 처리한다. VACUUM이 주기적으로 옛 버전을 재활용·반환한다.
종류
- VACUUM — 공간 재활용, 락 적음
- VACUUM FULL — 테이블 재작성, ACCESS EXCLUSIVE 락 (운영 중 금지)
- ANALYZE — 통계 갱신 (플래너용)
- autovacuum — 자동 실행, 기본값으로 대부분 해결
문제 상황
- Long running transaction이 autovacuum 방해
- 대량 UPDATE 후 bloat 누적
- TOAST 테이블 bloat 별도 관리 필요
모니터링
pg_stat_user_tables의 n_dead_tup, last_autovacuum 확인.