从PostgreSQL 10.4手册中关于完整清理(vacuum)的说明:
请注意,它们也会临时使用大约等于表大小的额外磁盘空间,因为旧版本的表和索引只有在新版本完成后才能释放
我已经在很多不同的地方读到了这个问题,并以各种方式表达。一些表明所需空间最多等于被清理表的大小。这暗示可能仅需要足够的空间来存储结果清理后的表,即大小在[0-size_of_original_table]范围内,具体取决于表中有多少死行(dead rows)。
我的问题是:对一个表进行完整清理(vacuum)是否总是需要与原始表大小相等的空间,还是取决于表中的活行(live rows)数量?