Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

优化分片键

细化集合的分片分片键可实现更细粒度的数据分布,并可解决现有键因关联 关联基数 不足而导致 个 巨型 数据段的情况。

警告

请勿修改任何当前分片键字段的范围或哈希类型。它会导致数据不一致。 例如,请勿将分片键从 { customer_id: 1 }修改为{ customer_id: "hashed", order_id: 1 }

注意

从 MongoDB 5.0 开始,您还可以通过为集合提供新的分片键来对集合重新分片。要了解应该对集合进行重新分片还是优化分片键,请参阅更改分片键

若要优化集合的分片键,请使用 refineCollectionShardKey 命令。refineCollectionShardKey 会向现有键添加一个或多个后缀字段以创建新的分片键。

例如,您可能在 test 数据库中有一个现有的 orders 集合,其分片键为 { customer_id: 1 }。您可以使用 refineCollectionShardKey 命令将分片键更改为新的分片键 { customer_id: 1, order_id: 1 }

db.adminCommand( {
refineCollectionShardKey: "test.orders",
key: { customer_id: 1, order_id: 1 }
} )

后退

更改分片键