Google app engine 更新数据存储中实体的成本(以及可能附加属性的成本)?
我有一个由两部分组成的问题 假设我有一个具有blob属性的实体Google app engine 更新数据存储中实体的成本(以及可能附加属性的成本)?,google-app-engine,google-cloud-datastore,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() 因此,问题是: 我第一次把()放入该实体时,成本是2次写入操作;如
# 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()
因此,问题是:
没有部分更新。每次覆盖整个实体时。索引的数量也会对成本产生影响。您可能希望查看发生的详细情况。那么更新实体的成本与创建实体的成本完全相同吗?即使我只更改一个属性,其他属性也会被“自身”覆盖?这似乎效率低下。这就是它的工作方式,我们不再是堪萨斯州的托托;-)尽管更新的成本比创建的成本要高,因为你先读后写。“我们不再是堪萨斯州的托托”…是否删除了另一条评论,托托是谁:P?谢谢。在这种情况下,更新的成本与写入的成本相同。当您有一个具有多个属性的实体时,写入该实体需要写入成本,更新索引需要写入成本。在更新过程中不会更改的属性不会产生更新索引的成本,因此更新的成本可能低于初始写入。