**VACUUM**은 dead tuple(MVCC가 남긴 쓸모없는 행 버전)에서 저장 공간을 회수하고 통계를 업데이트하는 PostgreSQL의 유지보수 프로세스입니다. Postgres의 MVCC가 모든 UPDATE/DELETE에서 dead 행을 생성하므로, VACUUM은 bloat를 방지하고 데이터베이스를 건강하게 유지하는 데 필수적입니다. Autovacuum이 이를 자동화합니다.
dead tuple이 존재하는 이유 (MVCC 연결)
MVCC: UPDATE/DELETE는 행을 덮어쓰지 않음 — 이전 버전을 쓸모없는 것으로 표시
("dead tuple")하고 새 것을 생성할 수 있음. dead tuple이 시간이 지나며 누적.
→ 정리 없이는 dead tuple이 BLOAT 유발: 낭비된 디스크 공간, 느린 스캔
(읽을 데이터 증가), 성능 저하.
VACUUM이 이 dead 공간을 회수 → 테이블을 작게, 쿼리를 빠르게 유지.
