首页 文章

跨分区查询时,DocumentDB读取延迟

提问于
浏览
0

我创建了2个空的documentDB集合:1)带有单个分区,2)带有多个分区 . 接下来在这两个集合上插入一行并运行扫描(从c中选择*) . 我发现单个分区占用了〜2RU,而多分区占用了约50RU . 它不仅仅是RU,而且多分区的读取延迟大约慢20倍 . 那么,当跨分区查询时,多分区总是具有高读取延迟吗?

1 回答

  • 1

    您可以将多分区集合的延迟与单分区集合相同 . 我们以扫描为例:

    • 如果您有非空集合,那么性能将与从其中一个分区读取数据的性能相同 . 从第一个分区读取数据,并按顺序在分区之间分页 .

    • 如果使用MaxDegreeOfParallelism选项,您将获得相同的低延迟 . 请注意,默认情况下,查询执行是串行的,以便针对具有较大数据集的查询进行优化 . 如果使用并行选项,则查询将具有相同的低延迟

    • 如果使用partition key = value上的过滤器进行扫描,那么即使没有并行性,您也将获得相同的性能 .

    确实,在查询期间触摸的每个分区都有一个小的RU开销(每个分区约2个RU用于查询解析) . 请注意,这不会随查询大小而增加,即使您的查询返回,例如1000个文档,查询将是1000 P * 2 RU用于分区集合而不是1000 RU . 您可以通过在分区键上包含过滤器来消除此开销 .

相关问题