Google app engine 应用程序引擎数据存储-索引优化

Google app engine 应用程序引擎数据存储-索引优化,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,假设我要运行两个查询: # Q1 Chair.query(ndb.AND(Chair.type == 'A', Chair.invented_at < '2014')) # Q2 Chair.query(ndb.AND(Chair.type == 'A', Chair.cost == 2, Chair.invented_at < '2014')) 但是,在存储和写入操作方面,只使用第二个索引(Q2)并修改Q1(在某些情况下可能会这样),这样做不是更有效吗?还是数据存储更容易使用更

假设我要运行两个查询:

# Q1
Chair.query(ndb.AND(Chair.type == 'A', Chair.invented_at < '2014'))

# Q2
Chair.query(ndb.AND(Chair.type == 'A', Chair.cost == 2, Chair.invented_at < '2014'))
但是,在存储和写入操作方面,只使用第二个索引(Q2)并修改Q1(在某些情况下可能会这样),这样做不是更有效吗?还是数据存储更容易使用更小但更多的索引


这个问题完全是假设性的,我只是想知道数据存储将如何反应。

数据存储从不计算任何东西,它只是按照索引中显示的顺序读取

在Q2指数的中间存在成本意味着Q1不能使用它。就这么简单。它是按类型、成本、时间顺序排列的。我知道有可能让系统读取它所需要的内容,但它不会因此跳过一列

如果需要,有一种算法可以帮助最小化索引数量,但在这种情况下不行。你也可以有更多的信息

# Index for Q1
- kind: Chair
  properties:
  - name: type
  - name: invented_at

# Index for Q2
- kind: Chair
  properties:
  - name: type
  - name: cost
  - name: invented_at