我正在阅读best practices for query performance上的Cosmos DB文档,发现以下模棱两可的地方:
对于Azure Cosmos DB,查询通常按以下顺序执行 从最快/最高效到更慢/效率更低。
- 获取单个分区键和项目键
- 在单个分区键上使用filter子句查询
- 在任何属性上均不包含相等或范围过滤器子句的查询
- 不带过滤器的查询
“在单个分区键和项目密钥上获取”和“在单个分区键和项目密钥上查询”之间是否存在性能或RU的差异。我不清楚这是属于案例1还是案例2,还是介于两者之间。
基本上,我在问我们是否需要使用GET。文档似乎没有在任何地方澄清这一点。
答案 0 :(得分:4)
直接GET将更快。如记录所示,检索1K文档应花费1 RU。使用查询引擎时,查询的RU费用会更高。
一个警告:直接读取(GET),您将检索整个文档。通过查询,您可以选择属性的投影。对于非常大的文档,使用查询可以为您的应用节省大量带宽。