Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 更新数据存储中实体的成本(以及可能附加属性的成本)?_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Google app engine 更新数据存储中实体的成本(以及可能附加属性的成本)?

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次写入操作;如

我有一个由两部分组成的问题

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

  • 当我将“efg”添加到属性中时,旧属性必须首先读入内存,应用程序引擎是否提供了一种不先读取就附加旧值的方法


  • 没有部分更新。每次覆盖整个实体时。索引的数量也会对成本产生影响。您可能希望查看发生的详细情况。

    那么更新实体的成本与创建实体的成本完全相同吗?即使我只更改一个属性,其他属性也会被“自身”覆盖?这似乎效率低下。这就是它的工作方式,我们不再是堪萨斯州的托托;-)尽管更新的成本比创建的成本要高,因为你先读后写。“我们不再是堪萨斯州的托托”…是否删除了另一条评论,托托是谁:P?谢谢。在这种情况下,更新的成本与写入的成本相同。当您有一个具有多个属性的实体时,写入该实体需要写入成本,更新索引需要写入成本。在更新过程中不会更改的属性不会产生更新索引的成本,因此更新的成本可能低于初始写入。