复杂查询与存储更多数据
Complex queries vs storing more data
在确定我希望在我的应用程序中拥有什么时,我很难决定什么是更好的方法。我主要使用 MongoDB,并在 Web 应用程序上工作,如果它可以使答案更具体的话。
我想知道什么是更好的方法:
- 在 Mongo 的集合中存储尽可能少的数据,并主要通过服务器端逻辑和对存储数据的计算来实现我的不同功能。
- 存储我需要的任何功能,以避免服务器端函数中的复杂查询和逻辑,同时用大量信息填充我的Mongo。
由于缺乏经验(我才刚刚开始做 Web 开发人员),我想,我不知道应该采取哪种方法。我考虑过在制作原型时采用第二个,但在开始扩展时切换可能太费力了。有什么建议吗?
我认为你错过了第三个选项:
- 在集合中存储少量数据,在客户端进行计算。
流星之美伴随着技术向胖客户端的转变。回到今天,主要是在 V8 之前,浏览器不能做太多事情。现在,他们可以做大量的工作。通过将工作推给您的客户,您可以减轻服务器的处理工作量,您不必将计算字段保存到您的数据库中,而且通常 client processing time < server processing time + transmission time
.
如果您做不到选项#3,请倾向于#2。存储通常比处理能力更便宜(而且肯定更快),但这取决于查询的复杂性。如果存储成本 < 处理成本,则存储它。
array.toString()
?计算它。神经网络模拟?存储它。
在确定我希望在我的应用程序中拥有什么时,我很难决定什么是更好的方法。我主要使用 MongoDB,并在 Web 应用程序上工作,如果它可以使答案更具体的话。
我想知道什么是更好的方法:
- 在 Mongo 的集合中存储尽可能少的数据,并主要通过服务器端逻辑和对存储数据的计算来实现我的不同功能。
- 存储我需要的任何功能,以避免服务器端函数中的复杂查询和逻辑,同时用大量信息填充我的Mongo。
由于缺乏经验(我才刚刚开始做 Web 开发人员),我想,我不知道应该采取哪种方法。我考虑过在制作原型时采用第二个,但在开始扩展时切换可能太费力了。有什么建议吗?
我认为你错过了第三个选项:
- 在集合中存储少量数据,在客户端进行计算。
流星之美伴随着技术向胖客户端的转变。回到今天,主要是在 V8 之前,浏览器不能做太多事情。现在,他们可以做大量的工作。通过将工作推给您的客户,您可以减轻服务器的处理工作量,您不必将计算字段保存到您的数据库中,而且通常 client processing time < server processing time + transmission time
.
如果您做不到选项#3,请倾向于#2。存储通常比处理能力更便宜(而且肯定更快),但这取决于查询的复杂性。如果存储成本 < 处理成本,则存储它。
array.toString()
?计算它。神经网络模拟?存储它。