1

我的web應用程序將有〜150個字段,並且在任何字段(至少一個)中更改值時,我應該保存更改的值。 我應該如何使用GAE存儲這些值?我應該直接將它們保存在數據存儲中嗎?我應該暫時使用memcache,然後在數據存儲中一次保存所有值嗎?或者,應該遵循其他一些方法?什麼應該用於在GAE中存儲數據?

回答

3

數據存儲是您的數據庫。 Memcache將存儲從數據存儲中獲取的數據並暫時保存在內存中,以避免太多的調用返回到數據庫。您應該首先圍繞數據存儲區設計應用程序,然後使用memcache來提高性能。

根據您選擇的編程語言(java,python,go),有許多工具可幫助您將應用中的對象映射到數據存儲並有效地使用memcache。

0

首先,你應該知道你將如何使用你的數據。您打算製作哪些查詢?你的實體的大小是多少?

數據存儲區與關係數據庫區別很大。那是多少屬性改變並不重要,因爲無法自行更新屬性。你只能整體保存實體。我不知道你的用例,但是應該有一個更好的方法來構造你的數據,而不是單個實體有150個屬性。你的用例是什麼?

另外,實體的屬性太多可能導致索引爆炸,或導致數據存儲寫入速度變慢。

+0

謝謝,有關我的案例的更多細節可以在這裏找到 - http://stackoverflow.com/questions/9232438/how-to-protect-gae-server-side-calculation-logic – 2012-02-28 18:46:30

0

我建議你將實體分割成一個根實體和一對連接的實體,每個實體擁有150個屬性中的每一個 - 這樣,當你更新一個屬性時,你只需要保存一個(或者兩個,如果更新反映在根實體上)更小的實體到數據存儲,而不是一個巨大的實體。

使用memcache來防止讀取,而不是存儲去往數據存儲的數據。 Memcache可以刷新並且數據可以在它達到永久存儲之前被銷燬。

往前一步,屬性的分組可以反映真實一起更新數據 - 比如,如果你經常更新街道郵政編碼在一起,這是有道理的單一結構,讓他們在一起。 Maxim電話:

相關問題