我们当前的方法是使用一个视图(例如:view_calculated_invoices)来计算并返回所有发票的当前余额。我们的数据库已显着增长,性能开始下降。
您可以想象, 旧发票可以提供陈旧数据 ,因为在全额支付发票后数据几乎不会更改。 较新的发票非常活跃,需要保持最新状态 (例如:申请付款和/或收取滞纳金)。
应该考虑采用哪些绩效策略来维护旧发票(需要较少的刷新)与新发票(需要频繁的刷新)的混合?
我们正在使用Postgresql v10。
我们尝试使用实例化视图,但是由于无法使用更新的发票,因此我们需要过于频繁地刷新数据,因此无法实现。
我们创建了一个表来维护view_calculated_invoices查询的结果,并在每次更改(删除或更新)时更新单个发票,但这给我们带来了很多问题。这是一个临时策略,但我们现在准备考虑专业和更好的策略。