postgresql - VACUUM FULL 表所需的空间
问题描述
来自关于完全真空的 PostgreSQL 10.4 手册:
请注意,它们还临时使用大约等于表大小的额外磁盘空间,因为表和索引的旧副本在新副本完成之前无法释放
我在许多不同的地方读过这篇文章,并以各种方式表达了这一点。一些表明所需的空间最多等于清理表的大小。暗示它可能只需要足够的空间来存储生成的清理表,即大小在 [0-size_of_original_table] 范围内,具体取决于表中有多少死行。
我的问题是:对表进行完全真空是否总是需要等于原始表大小的空间,还是取决于表中的活动行数?
解决方案
所需的额外空间VACUUM (FULL)
取决于表中的活动行数。
在此期间发生VACUUM (FULL)
的是写入表的新副本。所有活动元组(= 行版本)和尚未删除的死元组将写入此新副本。
交易完成后,旧副本将被删除。
推荐阅读
- c++ - 如何制作包含所有依赖项的共享库?
- python - 在嵌入式计算机上只运行一个带有 GUI 的 Python 应用程序:真的需要 X 服务器和窗口管理器吗?
- javascript - 根据其他复选框单击更改material-ui复选框状态已选中,未选中或不确定,而不使用reactjs中的状态
- ms-access - 为什么一个字段没有在组合框中显示为选项?微软访问
- android - 为什么当我按下通知时,PendingIntent 没有转到另一个 Fragment?
- ios - Carplay 仪表板中不显示播放/暂停按钮
- r - 如何添加两个不同维度的矩阵
- clojure - Clojure:是否有等效于 Perl/Ruby 的 __DATA__ / __END__ 特殊文字?
- c# - JsonAttribute 仅用于反序列化
- python - 创建一个按字母顺序排序的 UNIQUE 单词列表并在 python 中显示前 N 个单词