22、MongoDB 分片技术全面解析

MongoDB 分片技术全面解析

1. 分片设置

分片操作是在集合层面进行的。由于各种原因,有些集合可能不需要进行分片,这些未分片的集合会被存储在主分片中。在 MongoDB 中,每个数据库的主分片是不同的,当在分片环境中创建新数据库时,MongoDB 会自动选择当前存储数据最少的分片作为主分片。

若要更改主分片,可以使用以下命令:

> db.runCommand( { movePrimary : "mongo_books", to : "UK_based" } )

此命令将 mongo_books 数据库移动到名为 UK_based 的分片中。

2. 选择分片键

选择合适的分片键至关重要,因为一旦对数据进行分片并部署集群,更改分片键会变得非常困难。

2.1 更改分片键

在 MongoDB 中,没有直接的命令或简单的方法来更改分片键。唯一的方法是备份并恢复所有数据,这在高负载的生产环境中可能极其困难甚至无法实现。具体步骤如下:
1. 从 MongoDB 导出所有数据。
2. 删除原始的分片集合。
3. 使用新的键配置分片。
4. 预分割新的分片键范围。
5. 将数据恢复到 MongoDB 中。

在这些步骤中,步骤 4 需要进一步解释。MongoDB 使用数据块(chunks)来分割分片集合中的数据。如果从零开始启动 MongoDB 分片集群,MongoDB 会自动计算数据块,并将其分布在不同的分片中,以确保每

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值