2011-04-12 56 views
0

有点新的编程和有一个普遍的问题,我只是想到。动态或预先计算的数据

说,我有一个数据库与一堆的股票信息和一列的价格和另一个收入。要获得价格/收益率,最好是每天计算还是按需计算?我认为性能明智,只读会更快,但我想知道数学类型函数是否值得批处理作业进行预计算(它是否值得注意?)。

那么专业人员如何做呢?让应用程序为他们处理数据还是让它在数据库中可用?

+0

没有足够的细节给出任何有意义的建议。抽象任务的抽象答案是 - 可能是值得的,也可能不值得。 – zerkms 2011-04-12 04:03:25

回答

2

专业人员使用各种方法。这完全取决于你要做什么。是否需要立即显示新的实际比率?核心数据多久变化一次?理想情况下,只有在价格或收益发生变化时才计算比率,但这需要额外的开发,如果网站上没有大量活动,则可能不值得。另一方面,如果你每分钟收到数百次访问,你肯定会缓存你正在计算的任何内容,因为重新显示缓存结果所需的时间要少得多重新创建结果(在大多数情况下)。

然而,作为一般的经验法则,不要试图优化您没有预料到任何性能问题的东西。

+0

最后一段为+1。 – zerkms 2011-04-12 04:06:30

+0

好吧,我想我明白了。让它变得简单,如果性能开始出现问题,然后优化。我对它进行了测试并计算了比率并输出了300次,似乎很快......这让我想到了存储数据还是自己计算数据更好。我想我会计算它,并监视服务器的使用情况,如果它开始成为一个问题,我会提前计算它。 – Lostsoul 2011-04-12 14:14:39

+0

这听起来很不错。 :) – 2011-04-12 14:21:40

1

将统计数据作为独立表保存为只读模式会很好。您可以直接使用SQL函数计算avarage,max,min值并保存它们。同时,对于当前时期(日期),您可以动态计算并显示它。这些统计信息可用于报告或预测。

+0

最小值和最大值可以直接从索引中检索。所以没有理由存储你已经有两次的数据。 – zerkms 2011-04-12 04:02:54

+0

建议在表格中显示最小值和最大值,如果需要监视变化的统计模式。 – Senthil 2011-04-12 04:08:42

1

预先计算的值(当然)更快。

但是,这一切都取决于需求本身。

  • 此值是否会频繁调用?如果它经常被调用,那么使用预先计算的值将带来巨大的优势。
  • 计算是否真的需要很长时间和/或巨大的资源?如果是这样,使用预先计算将会有所帮助。

请记住,有时一个缓慢的过程或大量资源消耗是由编程实现本身造成的,而不是由错误设计的系统造成的。

相关问题