更新数据存储区中实体的成本(并且可能附加属性)?

时间:2013-03-28 00:46:33

标签: google-app-engine google-cloud-datastore

我有两个问题。

假设我有一个具有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个写操作;更新实体需要多少Ops,如上例所示?

  2. 当我将'efg'添加到属性中时,旧属性必须首先读入内存,app引擎是否提供了一种方法来附加旧值而不先读取它?

1 个答案:

答案 0 :(得分:3)

没有部分更新。每次覆盖整个实体。索引数量也会对成本产生影响。您可能希望查看https://developers.google.com/appengine/articles/life_of_write详细了解发生的情况。