VACUUM là tiến trình bảo trì của PostgreSQL giúp thu hồi không gian lưu trữ từ các dead tuple (các phiên bản hàng lỗi thời do MVCC để lại) và cập nhật thống kê. Vì MVCC của Postgres tạo ra dead tuple ở mỗi lần UPDATE/DELETE, VACUUM là cần thiết để ngăn bloat và giữ cho cơ sở dữ liệu khỏe mạnh. Autovacuum tự động hóa việc này.
Vì sao dead tuple tồn tại (mối liên hệ với MVCC)
MVCC: một UPDATE/DELETE không ghi đè lên hàng — nó đánh dấu phiên bản cũ là lỗi thời
(một "dead tuple") và có thể tạo ra một phiên bản mới. Dead tuple tích lũy theo thời gian.
→ Nếu không dọn dẹp, dead tuple gây ra BLOAT: lãng phí dung lượng đĩa, quét chậm hơn
(nhiều dữ liệu phải đọc hơn), hiệu năng giảm sút.
VACUUM thu hồi không gian dead này → giữ bảng gọn gàng và truy vấn nhanh.
