代码之家  ›  专栏  ›  技术社区  ›  Naveen Prasath

利用索引获取Cosmos DB中的记录总数

  •  1
  • Naveen Prasath  · 技术社区  · 6 年前

    我需要检索由某列筛选的集合的总数。收藏量为500万张。下面给出的查询用于检索集合中可用记录的总数。 SELECT COUNT(1) FROM c where c.Column1 IN ('Data2') . 在这里,这个查询使用continuation标记从多个集合中检索数据。这会延迟总计数结果。如果我们可以使用索引来提高查询性能而不增加RU的性能,有人能告诉我吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Jay Gong    6 年前

    如果我们可以使用索引来增加 不增加RU的查询性能?

    我不得不说,没有这么简单的方法可以在不增加RUs设置的情况下提高查询性能。如果是这样,RUs设置将变得毫无意义。

    据我所知,您可以从以下三个方面考虑改进性能:

    分区

    您可以在数据库中设置分区键,并在单个分区键上使用filter子句进行查询,这样它需要更低的延迟并消耗更低的ru。

    吞吐量

    您可以将吞吐量设置得更大一些,这样单位时间内的Azure Cosmos DB性能将大大提高。当然,这将导致更高的成本。

    索引策略

    使用索引路径可以提高性能和降低延迟。但是,您的查询属性没有任何子属性。因此,我认为默认索引很好。

    有关更多详细信息,我建议您参考 official performance documentation .