前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongoDB开启分片操作

mongoDB开启分片操作

作者头像
拓荒者
发布2019-09-12 15:09:00
3.4K5
发布2019-09-12 15:09:00
举报
文章被收录于专栏:运维经验分享运维经验分享

mongoDB开启分片操作

步骤:

1,对数据库enableSharding

shell进入mongos节点,use admin库

执行 db.runCommand( { enablesharding : "xx库" } );或 sh.enableSharding()这一步是对数据库启用分片能力,同一个库的不同collection会分布到不同shard上

但是一个collection只会存在于一个shard上

2,对集合开启分片

在开启了数据库分片之后,可以开始集合分片

还是要在admin库下执行

db.runCommand( { shardcollection : "xx库.xx集合",key : {files_id: 1} } )有如下参数:

{ shardCollection: "<database>.<collection>", key: <shardkey>, unique: <boolean>, numInitialChunks: <integer>, collation: { locale: "simple" }, writeConcern: <document>}key :分片的片键。参数是个document。

{索引字段:1或-1或hashed}

索引要在开启分片前建好。虽然mongo说如果是空库,开启分片时会自动创建不存在的索引,但还是建议你事前手动创建好。

说明:索引字段最好是在空库的时候就建好。数据量很大的时候新建索引一定要小心,第一找业务不忙的时候做,第二千万别忘了加background参数

1:升序,-1降序,hashed:哈希分布

mongo根据这个片键把documents划分到一个个chunks(块)中

最终是这些chunks在mongo各分片间均衡分配

所以说片键的选择和chunks的分配有直接的关系

另外注意:一旦对collection执行了分片,这个片键的值就不可改了。也就是说分片策略就完全固定下来了

unique:唯一性限制,默认是false。如果是hashed片键,不支持unique

如果将unique值为true,意味着:

1,对于还没有分片的集合,如果这个集合有其他的unique索引,那么这个集合将不能进行分片

2,对于已经分片的集合,你不能在这个集合上创建其他的unique索引

numInitialChunks:在片键策略是hashed时有效。就是让mongo初始化创建好多少个chunks,然后进行均衡

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mongoDB开启分片操作
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档