Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 如何确定哪些资源更昂贵,是写/读还是计算_Database_Performance_Computer Science_Processing Efficiency_Memory Efficient - Fatal编程技术网

Database 如何确定哪些资源更昂贵,是写/读还是计算

Database 如何确定哪些资源更昂贵,是写/读还是计算,database,performance,computer-science,processing-efficiency,memory-efficient,Database,Performance,Computer Science,Processing Efficiency,Memory Efficient,我搜集股票数据。我总结了以下几点: 开盘价,股价,成交量,已发行股份 我搜集的网站也有一些其他的衍生数量。我的意思是,这些可以从上面的数量计算出来。这些措施包括: 交易价值,市值,价格变动 虽然后者可以被刮到我的数据库中,然后稍后读取,但我也可以编写方法,在请求时动态计算它们。因此,我不需要将它们写入数据库并在以后阅读,而只需要像这样的方法 计算交易价值(),计算市值()和计算价格变化() 我的问题是,什么是更有效的方法?如何在实践中确定“更有效”?我知道这可能取决于写入/读取的数据量以及计算的

我搜集股票数据。我总结了以下几点:

开盘价
股价
成交量
已发行股份

我搜集的网站也有一些其他的衍生数量。我的意思是,这些可以从上面的数量计算出来。这些措施包括:

交易价值
市值
价格变动

虽然后者可以被刮到我的数据库中,然后稍后读取,但我也可以编写方法,在请求时动态计算它们。因此,我不需要将它们写入数据库并在以后阅读,而只需要像这样的方法

计算交易价值()
计算市值()
计算价格变化()

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


我是在看使用的内存、带宽、I/O还是什么?为了最终选择一个而不是另一个,我需要衡量哪些方面?

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

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


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

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

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


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

您正在使用大量不同类型的资源。你可能没有想到的一个,在这里最重要的是你银行账户中的美元数。这种数据服务和网络管道可以以使下一个数据饱和的速度为您提供这些数据,这需要花费很多钱。因此,如果你对此进行了修补,但似乎没有任何改变,那么你就找到了真正的瓶颈。你正在使用大量不同类型的资源。你可能没有想到的一个,在这里最重要的是你银行账户中的美元数。这种数据服务和网络管道可以以使下一个数据饱和的速度为您提供这些数据,这需要花费很多钱。因此,如果你对此进行了修补,但似乎没有任何改变,那么你就找到了真正的瓶颈。