【发布时间】:2017-09-23 18:03:22
【问题描述】:
对于我正在开发的服务器,我有两种选择。
选项 a) 当服务器启动时,从数据库中提取所有数据并将其作为对象存储在内存中。
选项 b) 每次需要数据时,从数据库中提取数据,将其转换为对象并返回。不要将所有数据都存储在内存中。
我有点担心如果内存中存储的数据过多,应用程序会崩溃。但我不确定这应该如何处理。
处理这个问题的正确方法是什么?
随意填写以扩展另一个选项。
【问题讨论】:
-
您对数据大小的要求是什么?查询的复杂性?这种方法有一些主要缺点,所以它肯定取决于您的服务器负载以及其他因素。例如,您将很难尝试扩展您的应用程序(超过 1 个服务器实例,甚至是 nodejs 原生集群)。
-
哪一个?选项a还是选项b?
-
我说的是一个。各有优缺点,请尝试提供更多信息
-
你完全无视我的问题。这取决于你的规模。
-
我不同意,这就是我首先提出这些问题的原因。例如,一个为 1000 个用户提供服务且一次不超过 50 个用户的应用程序,对于普通应用程序来说,不需要任何特殊措施来提高性能。但是,对于更大规模的项目,使用某种缓存可能值得付出努力和额外的维护,例如您的选项
a。对于扩展,您应该考虑使用Redis或类似的方法来缓存数据。以上各有缺点。还有其他事情需要考虑,例如项目的截止日期等等。
标签: javascript mysql node.js database