VACUUM 是一个用于手动执行数据库垃圾回收的实用命令。它可以选择性地与 ANALYZE 命令结合使用,以收集表统计信息。
VACUUM 一直存在于 PostgreSQL 中。它是 PostgreSQL 的一个扩展,不属于 SQL 标准。
VACUUM 和 autovacuum
自 PostgreSQL 8.1 起,自动清理进程会定期自动执行垃圾回收和统计信息收集。
监视 VACUUM 进度
自 PostgreSQL 9.6 起,进度报告视图 pg_stat_progress_vacuum 提供了一种监视 VACUUM 操作状态的方法。
变更历史
- PostgreSQL 18
- 添加了
VACUUM ONLY ...语法 (提交 62ddf7ee) - 在
VERBOSE模式下,如果启用了track_cost_delay_timing,还将报告延迟时间 (提交 7720082a) - WAL 使用信息中包含了“
buffers full”详细信息 (提交 6a8a7ce4)
- 添加了
- PostgreSQL 16
- PostgreSQL 14
- PostgreSQL 13
- 添加了选项
PARALLEL(提交 40d964ec)
- 添加了选项
- PostgreSQL 12
- PostgreSQL 9.6
- 添加了选项
DISABLE_PAGE_SKIPPING(提交 ede62e56)
- 添加了选项
- PostgreSQL 9.0
- PostgreSQL 7.2
- PostgreSQL 6.1
- 添加了选项
ANALYZE(提交 24d48db3)
- 添加了选项
参考资料
- PostgreSQL 文档: VACUUM
