postgresql - VACUUM FULL 表所需的空间

标签 postgresql postgresql-10 vacuum

来自 PostgreSQL 10.4 手册中关于完全真空的内容:

Note that they also temporarily use extra disk space approximately equal to the size of the table, since the old copies of the table and indexes can't be released until the new ones are complete

我在许多不同的地方读过这篇文章,并以各种方式表达。有些表明所需的空间最多等于被清理的表的大小。暗示它可能只需要足够的空间来存储生成的真空表,即大小在 [0-size_of_original_table] 范围内,具体取决于表中有多少死行。

我的问题是:对表进行完全清理是否总是需要与原始表大小相等的空间,还是取决于表中事件行的数量?

最佳答案

VACUUM (FULL) 所需的额外空间取决于表中事件 行的数量。

VACUUM (FULL) 期间发生的事情是写入表的新副本。 所有活元组(= 行版本)和无法删除的死元组都将写入此新副本。

交易完成后,旧副本将被删除。

关于postgresql - VACUUM FULL 表所需的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51361463/

相关文章:

postgresql - 如果发生错误,如何停止并退出postgresql恢复

sqlite - 如何清理sqlite数据库?

postgresql - 如何确保 autovacuum 守护进程在我的 PostgreSQL Docker 容器中运行?

sql - 锁定多行但只得到一行作为返回结果

linux - 找不到 root.crt postgresql

sqlite - 如何对 Core Data SQLite 数据库进行 VACUUM?

sql - Luhn(信用卡号哈希)可以在没有外部/自定义功能的情况下在 Postgres 中实现吗?

node.js - 如何在nodejs + postgresql中实现分页

postgresql - 是否可以检索数据库中保存时间的时区?

PostgreSQL 9.3 : Return strings from function