gpt4 book ai didi

Postgresql 显式 VACUUM 与自动 VACUUM : Differences? 建议?

转载 作者:行者123 更新时间:2023-11-29 11:42:31 28 4
gpt4 key购买 nike

来自 PostgreSQL(相对)新手的快速问题:

我们运行一个批处理过程,作为其最后一步,删除大部分以前的批处理。

磁盘空间是一个问题,因此我们需要确保 PostgreSQL 自行清理。

除了强制 PostgreSQL 更快地进行垃圾收集之外,在批处理结束时显式调用 VACUUM 与让自动 VACUUM 守护进程处理它之间有什么区别吗?是否有任何理由推荐一种方法与另一种方法?

谢谢!

最佳答案

很久以前只有一个真空,它充满了堵塞。然后 PostgreSQL 的家伙添加了非阻塞真空。但您仍然必须自己安排。

然后一些天才制作了一个守护进程,在表需要时自动为您运行 vacuum。它使用您或我使用的完全相同的 vacuum 命令,但有很多设置,尤其是默认设置,这使得它运行得更慢且干扰更少。这些设置主要用于工作线程(默认 3)、延迟成本(autovac 为 20ms,常规 vac 为 0ms)和 autovacuum 成本延迟限制(-1,即使用系统设置为 200)。

因此,常规 vacuum 非常激进,没有成本延迟,并且会在您的 IO 子系统允许的范围内尽可能快地运行。它基本上与您的常规工作负载竞争 IO 带宽。

通常,您可以根据自己的情况执行以下两项操作之一:

一:使 autovacuum 更具侵略性。通过将 autovacuum_vacuum_cost_delay 从 20 降低到 2 到 5 范围内的某个值,它会运行得更快,但仍然不会妨碍太多。

二:用手定期吸尘。由于默认情况下常规吸尘器没有 cost_delay,这将是最快的,但也是最具破坏性的。

您可以根据使用模式等做出决定。

关于Postgresql 显式 VACUUM 与自动 VACUUM : Differences? 建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48153385/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com