【问题标题】:GET vs Query on Partition Key and Item Key in Cosmos DBGET 与 Cosmos DB 中分区键和项目键的查询
【发布时间】:2019-02-06 03:55:58
【问题描述】:

我正在阅读 best practices for query performance 上的 Cosmos DB 文档,发现以下内容模棱两可:

使用 Azure Cosmos DB,查询通常按以下顺序执行 从最快/最有效到较慢/效率较低。

  • 获取单个分区键和项键
  • 在单个分区键上使用过滤器子句进行查询
  • 在任何属性上没有相等或范围过滤子句的查询
  • 不带过滤器的查询

“单个分区键和项目键上的 GET”和“单个分区键和项目键上的查询”之间的性能或 RU 是否存在差异。我不完全清楚这属于情况 #1 还是 #2 还是介于两者之间。

基本上,我问的是我们是否需要使用 GET。文档似乎没有在任何地方澄清这一点。

【问题讨论】:

    标签: azure azure-cosmosdb azure-cosmosdb-sqlapi


    【解决方案1】:

    直接 GET 会更快。如文件所述,1K 文档的检索成本为 1 RU。使用查询引擎时,查询的 RU 成本会更高。

    一个警告:通过直接读取(GET),您将检索整个文档。通过查询,您可以选择属性的投影。对于非常大的文档,这可能会在使用查询时为您的应用节省大量带宽。

    【讨论】:

    • 这是一个很好的解释。
    • 顺便说一句,我最终确实在文档中找到了关于此的声明:“读取资源是从数据库中获取资源的最有效方法。如果您知道资源的 ID,通过 ID 进行读取而不是查询”(docs.microsoft.com/en-us/dotnet/api/…)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-18
    • 1970-01-01
    • 2022-06-13
    • 2022-11-12
    • 1970-01-01
    相关资源
    最近更新 更多