【问题标题】:is it safe to enable autovacuum for a table in PostgreSQL在 PostgreSQL 中为表启用 autovacuum 是否安全
【发布时间】:2014-08-08 05:56:36
【问题描述】:

我是PostgreSQL9.2 版)数据库开发的新手。在查看我的一张桌子时,看到了一个名为 autovaccum 的选项。
我的许多表包含 20000 多行。出于测试目的,我更改了如下表中的一个

 ALTER TABLE theTable SET (
 autovacuum_enabled = true
 );
  • 那么,我想知道自动清空表格的好处/优点/缺点(如果有的话)

【问题讨论】:

    标签: postgresql autovacuum


    【解决方案1】:

    Autovacuum 在当前版本的 Postgres 中默认启用(并且已经有一段时间了)。出于性能和其他原因,启用它通常是一件好事。

    autovacuuming 之前,您需要自己显式 vacuum 表(通过执行 psql 命令的 cronjobs清理它们,或类似的)以摆脱死元组等。Postgres 现在已经通过 autovacuum 为您管理了一段时间。

    在某些情况下,对于具有巨大流失(即插入和删除率非常高)的表,我发现仍然有必要通过 cron 显式 vacuum为了保持 dead tuple 计数低且性能高,因为 autovacuum 启动速度不够快,但这是一个小众案例。

    更多信息:http://www.postgresql.org/docs/current/static/runtime-config-autovacuum.html

    【讨论】:

    • 哪个更好为每个表启用autovaccumvaccumdb (vacuumdb.exe -F -U postgres myDB)?
    • @keet:取决于你的情况,但在大多数情况下 autovacuum 工作正常。 20.000 行在我的数据库中几乎是一个空表,大多数表(实际上是分区)都远高于 5 亿条记录。
    猜你喜欢
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    相关资源
    最近更新 更多