我有一个实体,代表两个实体组之间的关系,但该实体属于其中一个组。但是,我对这些数据的查询将主要与其他实体组一起进行。为了支持查询,我看到我有两种选择:a)创建一个以另一个实体组键为前缀的全局索引b)将实体移至另一个实体组并创建祖先索引。
我看到一个演示文稿,其中提到祖先索引在内部映射到每个实体组的单独表,而全局索引只有一个表。这让我觉得祖先比使用全局索引更好,后者使用祖先键作为此特定用例的前缀,在该特定情况下,我将始终在某些祖先键的上下文中进行查询。
在性能,存储特性,事务延迟和进行最终调用的任何其他体系结构方面,寻求指导。
答案 0 :(得分:0)
根据我的发现,我会说这取决于您将要进行的工作类型。查看了this docs,它建议您避免每秒多次写入实体组。同样,索引属性可能导致延迟增加。它还指出,如果您需要强大的查询一致性,请使用祖先查询,因为该文档中有许多有关如何避免延迟和其他问题的建议。它应该可以帮助您接听电话。
答案 1 :(得分:0)
我最终使用了第三个选项,该选项是将另一个实体非规范化为另一个实体组,并对其进行祖先查询。这使我可以有效地查询任一实体组的数据。由于我已经在使用事务,因此非规范化不会导致任何不一致,并且一切似乎都很好。