2012-03-15 40 views
1

我正在使用Node.js + express + MongoDB构建一个动态网站(Node.js + express + MongoDB),如何优化一个常用变量?

而且几乎每个页面都有一些数字(如网站的用户数量/页面数/文章数量,显示在页脚)

因为它们存在于每个页面中,我认为它们会减慢我的网站,如果每次像渲染之前那样调用它就像一个没有这样有用的变量。

我对不对?

1.如此,如何优化这个概率?使用dynamicHelpers?怎么做?有没有例子?

2.哪一个更好?把它们放在数据库或CONFIG文件中?

回答

0

由于您使用的是mongo,因此您可以将所有这些键放入索引中。

如果您的文件看起来是这样的:

doc = { 
    'users': 50, 
    'page': 10, 
    'articles': 20 
} 

简单地做:

db.foo.ensureIndex({ 
    'users': 1, 
    'page': 1, 
    'articles': 1 
}) 

然后确保你只返回这些键。

如果这些位于索引中,Mongo将直接从内存中读取这些值,而不是从磁盘读取这些值。

如果您想通过类似于_id的方式来查询此内容,只需将_id添加为索引的第一部分,并将其余项目包括在索引中。

http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields#RetrievingaSubsetofFields-CoveredIndexes

0

您应该在短暂超时的情况下将这些值缓存在内存中;在每个请求上,检查您的应用程序在多长时间之前缓存了这些值,并且如果超时已过期,请重新进行查询。