2013-03-28 24 views
1

我有兩個部分的問題。更新數據存儲中實體的成本(以及可能追加屬性)?

比方說,我有一個blob屬性實體...

# create entity 

Entity(ndb.Model): 
    blob = ndb.BlobProperty(indexed=False) 

e = Entity() 
e.blob = 'abcd' 
e_key = e.put() 


# update entity 

e = e_key.get() 
e.blob += 'efg' 
e.put() 

所以問題是:

  1. 我第一次把()的實體,其成本是2寫行動;如上例所示,更新實體需要多少操作?

  2. 當我將'efg'添加到屬性中時,舊屬性必須先被讀入內存,app引擎是否提供了一種方法來追加舊值而不先讀取它?

回答

3

沒有部分更新。每次你覆蓋整個實體。指數數量也將對成本產生影響。您可能想看看https://developers.google.com/appengine/articles/life_of_write以瞭解詳情。

+0

因此更新實體成本與創建它完全相同? 即使我只更改一個屬性,其他屬性也會被「自己」覆蓋?這似乎效率低下。 – Chad 2013-03-28 01:08:48

+0

這就是它的工作方式,我們不再在堪薩斯州託託;-)雖然更新將花費更多的創建,因爲你有一個閱讀,然後寫。 – 2013-03-28 02:43:08

+0

「我們再也不在堪薩斯了」託託「......還有另一條評論被刪除,誰是託託:P?謝謝。 – Chad 2013-03-28 04:18:47

相關問題