【问题标题】:Free memory after Vacuum full?真空满后释放内存?
【发布时间】:2017-11-07 08:28:09
【问题描述】:

我的数据库服务器上的磁盘空间不足。我从未执行过vacuum full,我希望vacuum full 会释放一些空间。

你之前有没有运行过vacuum full,如果释放了空间,是多少?

【问题讨论】:

标签: postgresql postgresql-9.3 vacuum


【解决方案1】:

物理上的vacuum full 会创建一个表副本并破坏一个旧表。由此得出几个结论:

  • 如果空间不足,您可能无法运行它
  • 您将释放与已删除元组占用的空间一样多的空间

https://www.postgresql.org/docs/current/static/sql-vacuum.html

此方法还需要额外的磁盘空间,因为它会写入一个新副本 并且在操作完成之前不会释放旧副本 完全的。通常这应该只在大量的情况下使用 需要从表中回收空间。

您可以通过恢复数据的副本来确定数据的大小,例如pg_dump/pg_restore

【讨论】:

  • 你知道如何确定被删除元组的大小吗?
  • 最简单的是pg_dump/restore db 某处。或单独用于表格create table as select*
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-19
  • 2020-05-21
  • 2014-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-18
相关资源
最近更新 更多