我在appengine上運行我的Django站點。在數據存儲中,有一個實體種類/表X
,每24小時更新一次。一種優化從每天更新一次的數據存儲區讀取數據的方法
X
有大約15K條目,每個條目的形式(「長度爲< 20」,整數)的唯一字符串。
在某些情況下,用戶請求涉及從X
平均提取200個條目,如果單獨完成,則代價相當高昂。
在這種情況下我可以採用什麼樣的有效方法?
這裏有一些方法我想到了,但在他們由於經驗不足
- 有些懷疑使用()由db.get方法支持批量查詢,其中鍵列表可以作爲參數和傳遞get()會嘗試一次性獲取它們。這會大大減少時間,但仍然會有明顯的開銷和成本。另外,我使用的是Django模型,不知道如何將這兩者聯繫起來。
- 在每24小時發生一次更新作業後,手動將整個數據庫複製到內存中(例如將其存儲在地圖中)。這將工作得很好,同時也爲我節省了大量的數據存儲讀取,但我還有其他疑問。它會在各種實例中保持不變嗎?我還需要了解哪些因素會影響哪些因素?這個或類似的東西似乎對我的情況來說是完美的。
以上只是我想到的第一個想法。必須有我不知道/缺失的方式。
謝謝。
也許你可以實現緩存? –
您對這兩個選項都有正確的想法。使用[memcache](https://developers.google.com/appengine/docs/python/memcache/overview)肯定會以更少的費用加快速度。限制爲每個緩存值1MB。 – rGil