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

Cosmos DB中/PartitionKey/*与/PartitionKey索引路径的差异咨询

Azure Cosmos DB 索引路径 /PartitionKey/* 与 /PartitionKey 的差异
  • 匹配范围不一样

    • /PartitionKey/*:会把PartitionKey字段下的所有子属性都纳入索引。举个例子,要是你的文档是{"PartitionKey": {"a": 1, "b": "test"}},那a和b这两个子属性都会被索引到。
    • /PartitionKey:只索引PartitionKey字段本身。如果PartitionKey是嵌套对象,只会索引整个对象的哈希值,不会管它的子属性;要是PartitionKey是字符串、数字这类简单类型,就直接索引这个值。
  • 查询支持有区别

    • 用/PartitionKey/*的话,你能直接针对PartitionKey的子属性做过滤、排序这类查询,比如写SELECT * FROM c WHERE c.PartitionKey.a = 1,这类查询能靠索引提速。
    • 用/PartitionKey的话,要是PartitionKey是嵌套对象,查它的子属性(比如c.PartitionKey.a = 1)就没法用索引,会变成全集合扫描;只有直接查PartitionKey本身(比如c.PartitionKey = {"a":1, "b":"test"})才能用上索引。如果PartitionKey是简单类型,那查这个字段本身时两者没差别。
  • 索引存储开销不同

    • /PartitionKey/*会生成更多索引条目,因为要覆盖所有子属性,所以存储成本相对高一些。
    • /PartitionKey只索引字段本身,存储开销更低,尤其是当PartitionKey有一大堆子属性的时候。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 08:59:14