如何确定什么是更昂贵的资源,写/读或计算

时间:2019-03-04 15:53:08

标签: database performance computer-science processing-efficiency memory-efficient

我抓取了库存数据。我刮了以下内容:

opening pricestock pricevolume tradedshares in issue

我抓取的站点也有一些其他派生数量可用。通过推导,我的意思是可以从上述数量计算得出。这些包括:

value tradedmarket capprice change

虽然后者可以直接刮入我的数据库中,然后在以后读取,但是我也可以只编写在需要时即时计算它们的方法。因此,除了将它们写入数据库并稍后阅读之外,我还可以使用

之类的方法。

calculate_value_traded()calculate_market_cap()calculate_price_change()

我的问题是,更有效的方法是什么?我如何在实践中确定“更有效”?我知道这可能取决于写入/读取的数据量以及计算的性质,但是我想知道如何甚至一个基准测试来提高资源效率并最终降低成本?

我在查看使用的内存,带宽,I / O还是什么?我最终要选择一个要测量什么?

1 个答案:

答案 0 :(得分:1)

通常,您无需存储计算值,除非它们经常被极端使用或应被快速提供。原因是您有几个地方可以进行此计算。首先,它是数据库引擎,通常具有内置的功能来处理计算的列。其次,您可以在应用程序客户端进行计算,从而重新使用I / O和带宽。两种情况都可以降低您的存储成本,您也应该考虑到这一点。第三,您可以为此数据使用一种缓存存储,例如使用IMDB存储。

请注意,答案非常笼统,因为我们没有有关您的性能和成本要求以及您使用的技术手段的信息。

但是要注意存储计算的数据,因为您需要实现机制来在更新源数据时重新计算它,以确保您的数据保持一致。