【问题标题】:Should I still truncate a postgresql database if I am truncating and refilling the tables instead of deleting/inserting/upserting?如果我截断并重新填充表而不是删除/插入/更新插入,我是否还应该截断 postgresql 数据库?
【发布时间】:2020-02-17 18:03:00
【问题描述】:

我公司的生产数据库运行速度明显慢于测试数据库(本地 ~5ms,测试 ~18ms,生产 ~1-2 秒)。我们一直在尝试调查原因,并将针对我们云中安全 shell psql 实例的关键查询执行一些EXPLAIN ANALYZE

我一直在尝试阅读有关数据库优化的信息,并且遇到了 postgresql 的 VACUUM,我想知道运行它是否会有所帮助。我们不会经常更新生产数据库——每次发布一次,尽管迁移会根据需要删除或截断表,然后导入新数据。我很好奇 VACUUM 在这里是否有潜在的帮助?如果是这样,我们会在测试数据库的 spiped 实例中看到类似的减速吗?

【问题讨论】:

  • edit您的问题并添加execution plan 用于使用explain (analyze, buffers, format text)不是 只是一个“简单”的解释)作为formatted text 并确保您防止缩进计划(最好打开track_io_timing)。粘贴文本,然后将``` 放在计划前一行和计划后一行。还请包括所有索引的完整 create index 语句。
  • 您是否关闭了自动吸尘器?
  • 问题的描述与标题不一致。事实上,标题没有意义。没有截断 postgresql 数据库之类的东西,至少不是截断其中的每个表的单独概念。
  • 如果您ping 生产数据库服务器,您会看到什么?

标签: database postgresql optimization database-optimization


【解决方案1】:

如果数据库中有大量的 DELETE 和 UPDATE,VACUUM 会有所帮助。

https://dba.stackexchange.com/questions/36984/how-to-determine-if-a-postgres-database-needs-to-be-vaccumed

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多