我有一个模型:
class MyModel(db.Model):
some_list = db.StringListProperty(indexed=True)
some_value = db.StringProperty(indexed=True)
和一个综合指数:
indexes:
- kind: MyModel
properties:
- name: some_list
- name: some_value
如果我创建一个新实体:
entity = MyModel(some_list=['a', 'b'], some_value='xxx')
然后我将其放入数据存储区:
key = entity.put()
这将导致
- 2 次写入(在本例中为 2 次写入)
- 每个索引属性值 2 次写入(在本例中为 2 + 4 次写入)
- 每个复合索引值 1 次写入(在本例中为 2 次写入)
在这种情况下,总共有 10 次写入。到目前为止,我了解文档。
但是现在我得到了现有的属性,将“c”添加到 some_list 并放回去:
existing = MyModel.get(key)
existing.some_list.append('c')
existing.put()
那是多少数据存储写入?
文档说:
1 次写入 + 每个修改的索引属性值 4 次写入 + 每个修改的复合索引值 2 次写入
这是否意味着 some_list 中的 'a' 和 'b' 的索引不需要重写:
1 + 4 + 2 = 7 次写入
或者是因为 some_list 更改而重写了 some_list 中的 'a' 和 'b' 的索引:
1 + 12 + 6 = 19 次写入
?