祖先索引是否消耗更少的存储空间?它会消耗多少存储空间?

Does an ancestor index consume less storage? About how much less storage would it consume?

鉴于 App Engine 中的索引占用大量存储空间,我想知道哪种设置可以节省更多存储空间。我有一个包含超过 100,000 个实体的 ndb 模型。 index.yaml 中为其自动生成的索引条目如下:

# index.yaml
indexes:
- kind: MyModel
  properties:
  - name: label
  - name: date

- kind: MyModel
  ancestor: yes
  properties:
  - name: label
  - name: date

我想知道保留两个索引是否不会显着影响它们使用的存储量。或者我可以通过删除其中一个来节省大约 50% 的存储空间吗?截至目前,我可以很容易地重构我的代码以使用或不使用祖先查询,因此重构代码不是问题。我只想知道哪条路径可以节省更多存储空间。

如果最好删除其中一个,我应该删除哪个可以节省更多存储空间?祖先查询的索引,还是不是?

提前致谢

假设您使用自动生成的索引(index.yaml 有两种模式:自动和手动),并且首先在没有祖先的情况下工作,但后来更改了您的方案(因此自动添加了新索引),您应该先删除指数:

# index.yaml
- kind: MyModel
  ancestor: yes
  properties:
  - name: label
  - name: date

如果您创建和使用没有祖先的实体,它应该是 None 并且此索引运行良好。如果您担心 space/speed 问题,我建议您手动控制索引。