App Engine中的重叠索引 - 可以将它们组合起来吗?

时间:2014-10-02 18:43:56

标签: google-app-engine google-cloud-datastore app-engine-ndb

我有一个依赖于下面第一个索引的查询。最近,我的应用程序的另一部分需要运行类似的查询;唯一的区别是它还需要按name属性进行过滤。

原始索引:

- kind: Achievement
  properties:
  - name: region
  - name: date_earned
    direction: desc

新查询的建议附加索引:

- kind: Achievement
  properties:
  - name: name
  - name: region
  - name: date_earned
    direction: desc

鉴于原始查询与第二个查询重叠(即它们都按降序查询regiondate_earned),我是否需要保留两个索引,如上所示?

或者我能够组合这两个索引,因为第一个查询与第二个查询重叠?换句话说,如果我删除了第一个索引,那么regiondate_earned仅查询的原始查询是否仍会在不抛出NeedIndexError的情况下运行?

目标是减少我拥有的索引数量。谢谢!

1 个答案:

答案 0 :(得分:0)

对于数据存储区索引,在您的情况下,如果您有以下索引:

  • 善良:成就 特性:
    • 姓名:姓名
    • name:region
    • name:date_earned 方向:desc

您可以在同一GQL查询中查询一个或多个属性(形成索引)。 因此,您可以查询一个或多个属性的任意组合:'name','region','date_earned'。

确认是否需要索引的一种好方法是在App Engine应用程序的数据存储区查看器中运行GQL查询。因此,如果你有'name','region','date_earned'的索引,你可以运行你的GQL查询并确认你不需要一个单独的索引。