google-cloud-datastore - 祖先索引还是全局索引?
问题描述
我有一个实体,它代表两个实体组之间的关系,但该实体属于其中一个组。但是,我对这些数据的查询将主要针对其他实体组。为了支持我看到的查询,我有两个选择 a) 创建一个全局索引,它以另一个实体组键作为前缀 b) 将实体移动到另一个实体组并创建祖先索引。
我看到一个演示文稿,其中提到祖先索引在内部映射到每个实体组的单独表,而全局索引只有一个表。这让我觉得祖先比使用包含祖先键作为前缀的全局索引更好,我将始终在某些祖先键的上下文中进行查询。
在性能、存储特性、事务延迟和任何其他架构考虑方面寻求指导,以做出最终决定。
解决方案
我最终使用了第三个选项,即将另一个实体非规范化到另一个实体组并对其进行祖先查询。这使我能够有效地查询任一实体组的数据。由于我已经在使用事务,因此非规范化不会导致任何不一致,并且一切似乎都运行良好。
推荐阅读
- javascript - 使用猫鼬从数组中删除单个项目
- html - 了解 CSS 选择器。悬停显示来自另一个 div 的信息
- excel - 是否有删除具有特定长度的单词的功能?
- google-chrome - Google Chrome、Iframe 和选定文本的奇怪问题,文本方向从 LTR 变为 RT
- terraform - 使用 Terraform 部署 Helm 包
- r - dplyr 满足条件时过滤掉行
- php - 自动化 WordPress 中的每周后台功能
- windows - 如何在 Windows 10 中安装的 ubuntu 终端中访问 anaconda 提示符?
- r - 如何在 for 循环中包含 dplyr::mutate
- c++ - python 3.9 x64 ctypes通过引用传递char指针(char**)OSError:异常:访问冲突读取0xFFFFFFFFFFFFFFFF