1

我有以下情况(在 Rails 3 中):我的表包含每个用户的金融交易(用户可以买卖产品)。由于发生了大量此类交易,因此我在网站上提供与当前用户相关的统计数据,例如当前余额、总体利润、总体销售/购买的产品数量、平均值等(同样以每月/每年为基础)的整体)。此信息的一部分在许多表单/页面上显示给用户,以便用户始终可以看到他当前的帐户信息(虽然不同的统计信息显示在不同的页面上)。

我的问题是:我怎样才能优化数据库性能(这是否值得)?当然,如果用户只是浏览,那么每次加载新页面时都不需要重新计算所有值,除非对底层数据库进行了更改?

我的第一个解决方案是将这些统计信息存储在他们自己的表中,并在添加/编辑金融交易后更新它们(在 Rails 中可能使用 :after_update ?)。更进一步,例如,如果进行了新交易,那么我可以只修改平均值而不是重新计算整个事情。

我的第二个想法是使用某种缓存(如果可能的话?),或者将这些值存储在会话对象中。

哪种方式是首选/推荐方式,或者所有这些都是浪费时间,因为当前最大的金融交易数量在 7000-9000 的范围内?

4

1 回答 1

0

您可能想要研究汇总表,也称为物化视图。

此链接可能会有所帮助:

http://wiki.postgresql.org/wiki/Materialized_Views

于 2012-08-05T07:21:08.117 回答