我必须在执行X大小数据的查询而不处理它之间做出选择,只需将其发送到客户端,
OR
我可以选择对半X大小的数据执行查询并进行一些处理,然后将其发送给客户端。
现在,在我的程序员生活中,我遇到了存储与速度问题,但在这种情况下,我必须在“快速查询+处理”或“慢查询+无处理”之间进行选择。
如果重要,我使用nodejs作为服务器,使用mongodb作为数据库。 如果你关心,我持有非相交的地图区域,我正在测试一个区域是否与任何地图区域相交。都是盒子。如果我将它们保留为原点,它只有一对坐标,我必须将该点处理成一个区域(所有地图区域都具有相同的大小)。如果我将它们直接存储为区域,我不再需要处理它,而是现在它的4对坐标。我想是4倍大小的查询。
答案 0 :(得分:4)
这个问题没有正确答案,这完全取决于您的基础设施。例如,如果您使用Amazon Webservices,则取决于交易价格。如果您拥有自己的基础架构,则取决于数据库和Web服务器的负载。如果它们位于同一台服务器上,那么在CPU /内存成为瓶颈之前,数据库的I / O是否开始受限就是底层硬件的问题。
根据您的具体情况确定此问题的正确答案的唯一方法是设置并进行压力测试,例如使用Load Impact或其他一些好的工具来执行此操作。在受到重创时,请使用top
监控系统负载并专门查看wa
列 - 如果它始终超过50%,则I / O受限,并且应卸载数据库到了CPU。