You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Cosmos DB分区键索引配置及SDK查询方式差异咨询

关于Azure Cosmos DB分区键索引与查询路由的问题解答

嘿,针对你的两个疑问,我来给你详细拆解清楚:

1. 分区键是否需要额外创建索引?

答案是不需要。Azure Cosmos DB的默认索引策略会自动为容器中的所有字段(包括分区键)创建索引,而且分区键作为数据路由的核心标识,本身就会被纳入索引体系中。

你执行的SELECT * FROM c WHERE c.country = "AZ"查询,因为country是分区键,Cosmos DB会直接利用默认的索引定位到对应的分区,高效返回结果,完全不需要你手动为country字段添加额外索引。

2. SDK查询时指定PartitionKey与不指定的差异

这两者的核心差异在于查询的路由范围,直接影响性能和RU消耗:

  • 指定new PartitionKey("AZ"):Cosmos DB会精准路由到country = "AZ"对应的分区,只在这个分区内执行查询操作。这种方式的优势很明显:消耗的RU更少,查询速度更快,是针对分区键等值查询的最佳实践。
  • 不指定PartitionKey:这会触发跨分区查询,Cosmos DB需要遍历容器中的所有分区来执行查询。这种方式不仅会消耗更多的RU,查询延迟也会更高;如果你的容器配置中禁用了跨分区查询(默认是开启的),这类查询还会直接失败。

简单来说,当你的查询条件明确匹配分区键的值时,一定要指定PartitionKey选项,能大幅优化查询的效率和成本。

内容的提问来源于stack exchange,提问作者galbru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:52:53