如果一个索引集是另一个索引的子集,我们可以优化谷歌应用程序引擎索引吗



我在代码中使用两个索引进行查询。这些索引是:

索引1:

<datastore-index kind="Contact" ancestor="false" source="auto">
    <property name="type" direction="asc"/>
    <property name="star_value" direction="asc"/>
    <property name="close_date" direction="asc"/>
</datastore-index>

索引2:

<datastore-index kind="Contact" ancestor="false" source="auto">
    <property name="type" direction="asc"/>
    <property name="star_value" direction="asc"/>
    <property name="close_date" direction="asc"/>
    <property name="lead_value" direction="asc"/>
</datastore-index>

Q。谷歌应用程序引擎说,我们可以优化索引来减少它。我们可以只使用index2吗?因为它具有index1的所有属性,并且从上到下按正确的顺序和位置?

如果基于这两个索引运行查询,则需要这两个指数。

根据您的用例,您可以只使用索引1来检索所有匹配的实体,然后循环遍历结果,只保留那些与"lead_value"筛选器匹配的实体。

如果满足以下两个条件,这种方法是一个好主意:(1)在应用前3个过滤器后,您会发现数量相对较少的实体,以及(2)您需要从大量实体开始,或者您非常频繁地更新这些实体,因此删除额外的索引可以显著节省写入/数据存储成本。

相关内容

最新更新