【问题标题】:Creating denormalized tables with triggers too slow使用触发器创建非规范化表太慢
【发布时间】:2022-02-03 14:42:18
【问题描述】:

假设我在一个 postgresql 数据库中做所有事情。我有 10 个源表用于创建一个巨大的非规范化表。这些源表经常更改,并在插入/更新/删除后触发触发器以近乎实时地修改非规范化表。问题是,我要加入的其中一些源表很大(一个表有 120M 和其他 25M 行),并且用于将新行插入非规范化表的语句执行很长时间(50-100k 行需要 20 多分钟)。

所以,我正在考虑根据源表的更改更新(IUD)这个非规范化表上的更改的最佳解决方案是什么?我应该按计划运行这些操作,我应该为此专门指定一个特定的数据库副本,还是应该继续尝试使用触发器?

我愿意使用完全不同的方法,只要它在同一个数据库上可行。

【问题讨论】:

    标签: postgresql triggers amazon-rds denormalized


    【解决方案1】:

    听起来没有好的简单的解决方案。

    也许您不需要一张巨大的非规范化表,并且对一些属性进行非规范化就足以提高您的查询速度。

    如果没有,您可能需要一种用于非规范化数据的数据仓库,并每天以增量方式刷新该数据。理想情况下,那里的表已经预先聚合。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-28
      • 2014-01-20
      • 2020-04-06
      • 2012-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-05
      相关资源
      最近更新 更多