使用触发器创建非规范化表太慢

Creating denormalized tables with triggers too slow

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

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

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

这听起来似乎没有好的和简单的解决方案。

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

如果没有,您可能需要一种用于非规范化数据的数据仓库,并每天增量刷新。理想情况下,tables 已经有 pre-aggregated。