首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB -使用已经包含的数据对集合进行切分

MongoDB -使用已经包含的数据对集合进行切分
EN

Database Administration用户
提问于 2018-05-18 13:28:25
回答 1查看 4.3K关注 0票数 3

我在集群配置中使用Mongo (shell版本2.6.12)。现在,我有一些收藏品切分,并希望切碎另一个收藏。此集合中已经包含数据。一旦我运行命令对集合进行切分并给出它的关键,集群将获取现有数据并将其分散到集群中的多个系统中,还是将现有数据保存在一台服务器上,然后将任何新数据传播到其他系统?

EN

回答 1

Database Administration用户

回答已采纳

发布于 2018-05-18 21:27:24

当您分割现有的集合时,MongoDB将根据数据大小将碎片键的值拆分为块范围,并根据块分布开始在碎片之间重新平衡。重新平衡一个大型的集合可能需要非常多的资源,因此您应该考虑到时间和对您的生产部署的影响。

在MongoDB 2.6中(2016年10月生命结束),均衡器一次只能执行一次块迁移。在MongoDB 3.4或更高版本中,平衡器可以执行并行块迁移,但每个碎片一次最多只能参与一个迁移。与MongoDB 3.6一样,这意味着具有n个碎片的切分集群最多可以执行n/2 (四舍五入)同时的块迁移。

分割大型现有集合的一种更快的方法是基于碎片键的当前数据分发版进行空集合中的预分割块,然后将现有数据转储并恢复到这个新的切分集合中。预拆分方法通过创建适当的块范围来最小化重新平衡活动,从而在insert上分发数据。

自从MongoDB 2.6以来,性能有了很大的提高,所以我强烈建议升级到受支持的MongoDB版本(最好是MongoDB 3.4或更高版本)。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/207196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档