维护

垃圾回收(回收存储)

VACUUM [__Table__]

vacuum(verbose, analyze) employee;
INFO:  vacuuming "public.employee"
INFO:  scanned index "employee_pkey" to remove 1 row versions
. . .
sample, 1 estimated total rows
VACUUM

// 使用 vacuum 命令从 employee 表中已删除的行中回收存储(SQL)

1. 删除或被更新过时的表行不会从其表中物理删除;它们会保留到执行 VACUUM 命令为止。因此,有必要定期执行 VACUUM,尤其是在经常更新的表上。

2. 详细 打印每个表的详细真空活动报告。

3. 分析表的更新统计信息。


收集统计信息

ANALYZE [__table__]

analyze verbose employee;
INFO:  analyzing "public.employee"
INFO:  "employee": scanned 1 of 1 pages, containing 1 live rows and 0 dead rows; 1 rows in sample, 1 estimated total rows
ANALYZE

// 分析表并将结果存储在 pg_statistic 系统目录中(SQL)

1. ANALYZE 收集查询规划器的统计信息,以创建最有效的查询执行计划。准确的统计信息有助于规划器选择最合适的查询计划,从而提高查询处理速度。

2. 详细 打印每个表的详细分析活动报告。

3. 如果没有指定表名,ANALYZE 将检查当前数据库中的所有表。