0

,使用App Engine,我有大約1000個A類型的實體。雲數據存儲 - 利用我的Google Cloud Datastore中的小操作

我需要預加載整個實體列表,不斷更新,每次用戶登錄。我不能做到靜態。

a_entities = A.query().fetch() 

到:

以谷歌雲存儲定價模型(https://cloud.google.com/datastore/pricing)的優勢,我從改變了查詢代碼

a_keys = A.query().fetch(keys_only=True) 
a_entities = ndb.get_multi(a_keys) 

讓我留在日常的免費配額,因爲我據我所知,大部分閱讀操作都是免費且無限制的「數據存儲小操作」類型。

這是一個健全的解決方案嗎?如果增加很多,它能夠維持一定的流量嗎?會影響其他資源嗎?

謝謝

回答

1

keys_only查詢是免費的(僅1個操作)。但是下一行,你在哪裏get_multi實際的實體不是免費的。你還沒有發現漏洞留在免費配額內。

+0

好的謝謝,通過測試,我發現這往往比第一行的配額表現更好。是否因爲memcache? –

+0

@FedericoCapello如果值在memcache中,您將從成本角度(假設使用共享的memcache)受益於此方法。但是從性能角度來看,您需要承擔2次往返。在高音量情況下,您還需要注意熱鍵問題 – jcjones1515

相關問題