請原諒我。數據存儲到對象和更新,每20分鐘
我節點應用程序插入記錄到的MongoDB每隔20分鐘。
這似乎不合邏輯每一個用戶訪問該頁面時查詢數據庫,因爲數據庫是20分鐘的時間段相同的(直到我插入新記錄,每20分鐘)。
我想我可以在查詢結果存儲在一個對象,或什麼的,並更新此對象,每20分鐘(我每次插入新記錄時,這是每20分鐘發車的功能)。
我該怎麼做呢?我需要這是一個全局變量嗎?
這是一個好的或壞的想法,爲什麼?
請原諒我。數據存儲到對象和更新,每20分鐘
我節點應用程序插入記錄到的MongoDB每隔20分鐘。
這似乎不合邏輯每一個用戶訪問該頁面時查詢數據庫,因爲數據庫是20分鐘的時間段相同的(直到我插入新記錄,每20分鐘)。
我想我可以在查詢結果存儲在一個對象,或什麼的,並更新此對象,每20分鐘(我每次插入新記錄時,這是每20分鐘發車的功能)。
我該怎麼做呢?我需要這是一個全局變量嗎?
這是一個好的或壞的想法,爲什麼?
如果你的查詢索引和/或速度快,命中數據庫可能是要走的路。另一個選擇是有一個緩存層。如果你在原始node.js中這樣做,你會爲自己購買很多複雜性(和可能的性能問題),所以我會遠離它。如果你在另一個服務(redis,memcached)中做過,除非查詢複雜或緩慢,否則你可能看不到很多性能增益。如果查詢很複雜,可以每20分鐘重新生成一次結果,並將其保存在mongo中的某個地方,然後從中運行查詢。例如:
setInterval(regen_stats, 20 * 60 * 1000)
的底線是,數據庫是爲了進行查詢,所以你不必開始服用的東西遠離他們,直到它停止執行(通常是由於規模或查詢的複雜性)
可能是一個壞主意。 MongoDB已經緩存了最近查詢過的數據 - 除非你有大量的頁面,只需重新查詢並且不用擔心。 –