2012-03-15 45 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

您應該在短暫超時的情況下將這些值緩存在內存中;在每個請求上,檢查您的應用程序在多長時間之前緩存了這些值,並且如果超時已過期,請重新進行查詢。

相關問題