【问题标题】:Ancestor index or global index?祖先索引还是全局索引?
【发布时间】:2019-10-25 12:04:54
【问题描述】:

我有一个表示两个实体组之间关系的实体,但该实体属于其中一个组。但是,我对这些数据的查询将主要针对其他实体组。为了支持我看到的查询,我有两个选择 a) 创建一个全局索引,将另一个实体组键作为前缀 b) 将实体移动到另一个实体组并创建祖先索引。

我看到一个演示文稿,其中提到祖先索引在内部映射到每个实体组的单独表,而全局索引只有一个表。这让我觉得祖先比使用包含祖先键作为前缀的全局索引更好,我将始终在某些祖先键的上下文中进行查询。

在性能、存储特性、事务延迟和任何其他架构考虑方面寻求指导,以做出最终决定。

【问题讨论】:

    标签: google-cloud-datastore


    【解决方案1】:

    据我所知,这取决于您将从事的工作类型。查看this docs,它建议您避免每秒多次写入实体组。此外,索引属性可能会导致延迟增加。它还指出,如果您需要查询的强一致性,请使用祖先查询,在该文档中,有许多关于如何避免延迟和其他问题的建议。它应该可以帮助您接听电话。

    【讨论】:

      【解决方案2】:

      我最终使用了第三个选项,即将另一个实体非规范化到另一个实体组并对其进行祖先查询。这使我能够有效地查询任一实体组的数据。由于我已经在使用事务,因此非规范化不会导致任何不一致,并且一切似乎都运行良好。

      【讨论】:

        猜你喜欢
        • 2018-02-22
        • 2013-08-28
        • 2011-02-28
        • 1970-01-01
        • 2019-10-26
        • 2020-07-09
        • 1970-01-01
        • 1970-01-01
        • 2019-12-24
        相关资源
        最近更新 更多