【发布时间】:2013-02-25 01:55:24
【问题描述】:
我希望批处理成为从数据存储中检索数据的最快方法之一。它与查询相比如何获取低于祖先的所有实体?当然,这个查询没有任何过滤器或排序顺序。
我希望这个查询与批量获取一样快,因为我认为它不需要索引扫描,并且只需要直接从实体 bigtable 中检索实体。此外,假设此表中的所有实体都按其键排序,结果将位于订单的下一个,全部按顺序排列 - 这不能保证批量获取。
考虑到这两个操作检索相同数量的实体,就成本而言,与批量获取相比,查询将只有 +1 读取操作。
我的假设是否有意义?您是否经历过任何可以证实或否认这些假设的事情?
如果我能确认我的期望,我计划大量使用这些查询。我会在层次结构中组织我的模型,并避免将参考存储到列表中的其他实体(用于批量获取) - 没有列表大小限制,我也可以避免检索大型实体(有很多多值properties) 在不需要批量获取的情况下。
我真的很感激任何关于此的 cmets。
提前谢谢你。
【问题讨论】:
-
我建议您实际尝试一下,使用 appstats 对其进行测量并进行比较,然后您就可以为您的特定用例提供经验答案。
-
是的,我同意你的看法。我只是希望尼克约翰逊或任何有更多经验的人能就此发表意见。这样我就不会构建一个在某些天真的条件下成功的测试用例,但会随着我的数据增长而失败。但我明白你的意思。 =)
标签: google-app-engine google-cloud-datastore