我正在使用这个框架构建我的第一个网站,我正在重建一个我在PHP + mySQL中完成的网站,并希望了解一些性能...在我的网站中,我有两种内容:
当我在学习nodeJS的基础知识时,我开始考虑一种提高网站性能的方法,这是我用PHP无法做到的。所以,我正在做的是:
当我运行应用程序时,静态内容全部加载到内存中,我有一个“模型”对象,用于存储数组的每个内容,有一个刷新该数据的方法,即管理员更新时某事,我调用refresh()来从数据库中获取新数据到该数组。通过这种方式,对于每个页面加载,应用程序直接查询内存中的对象,而不是查询数据库。
我想知道的是,是否应该提高性能,直接在内存中处理对象,或者对数据库的常量查询是否同样好或甚至更好。
非常感谢任何支持您答案的文档。
由于
答案 0 :(得分:2)
就一般数据库性能而言,MongoDB会将您的工作集保留在内存中 - 这是它的基本操作方法。
因此,只要没有内存争用导致数据被换出,并且它不会太大而无法放入物理RAM,那么对数据库的查询应该非常快(在亚毫秒内)一旦你的数据集最初被分页,你可以使用范围。
当然,如果数据库位于不同的主机上,那么您需要考虑网络延迟等,但理论上您可以将它们视为相同,直到您有理由对其进行质疑。
答案 1 :(得分:1)
我认为不会有任何性能差异。首先,这个静态数据可能不是那么大(最多100条记录?),查询数据库并不是什么大问题。第二件事(更重要的是)大多数数据库引擎(包括mongoDB)都内置了缓存系统(虽然我不确定它们的工作原理如何)。第三件事是在内存中保存查询结果不能很好地扩展(对于大型网站),除非您使用Redis之类的存储引擎。这是我的看法,虽然我不是专家。