Thr*_*asi 13 postgresql vacuum postgresql-10
来自关于完全真空的 PostgreSQL 10.4 手册:
请注意,它们还会临时使用大约等于表大小的额外磁盘空间,因为在新表和索引完成之前无法释放表和索引的旧副本
我在很多不同的地方读过这篇文章,并以各种方式表达过。一些表明所需的空间最多等于真空表的大小。暗示它可能只需要足够的空间来存储生成的真空表,即大小在 [0-size_of_original_table] 范围内,具体取决于表中有多少死行。
我的问题是:对表进行完全真空是否总是需要等于原始表大小的空间,还是取决于表中的活动行数?
Lau*_*lbe 14
所需的额外空间VACUUM (FULL)取决于表中的活动行数。
在此期间发生VACUUM (FULL)的是写入表的新副本。所有活着的元组(= 行版本)和还不能被删除的死元组都将被写入这个新副本。
交易完成后,旧副本将被删除。
小智 8
建议空闲空间至少等于数据库中最大表的大小。
即,如果您的数据库大小为 10GB,而您数据库中的最大表大小为 2GB。那么你的磁盘上必须至少有 2GB 的额外空间,才能成功完成真空。
因为VACUUM FULL将创建表的新副本,排除死行然后删除现有表。
| 归档时间: |
|
| 查看次数: |
4201 次 |
| 最近记录: |