PG_Vacuum_VacuumFull

在 PostgreSQL 中,VACUUMVACUUM FULL 是两种不同的操作,它们用于维护和优化数据库表。

VACUUM:

  • VACUUM 是用于释放表中未使用的空间、删除已删除行的存储空间、更新统计信息的操作。它并不重建表,而是通过清理不再需要的数据来优化表的存储。VACUUM 操作是常规性的,用于维护数据库性能。
  • VACUUM 不会移动表中的数据,而是标记被删除的行以便后续的清理。
1
VACUUM table_name;

VACUUM FULL:

  • VACUUM FULL 则是一种更为彻底的操作,它不仅释放未使用的空间,还重新组织表的物理存储以减小表的大小。具体地说,VACUUM FULL 创建一个新的表文件,将表的数据移动到新的文件中,然后删除旧文件。这可以显著减小表的大小,但是由于需要创建新文件和移动数据,因此 VACUUM FULL 通常比普通的 VACUUM 操作更耗时,而且可能需要较长的停机时间。

1
VACUUM FULL table_name;

通常情况下,你可以定期使用 VACUUM 来维护数据库性能,而 VACUUM FULL 则通常用于在特定情况下需要最大限度地减小表的物理大小时。由于 VACUUM FULL 的性能开销较大,它不太适合频繁执行。

VACUUM 是一个轻量级的操作,而 VACUUM FULL 是一种重建表的操作,更适合在需要时进行,而不是定期执行。