MongoDB 分片

本文介绍了MongoDB的分片机制,用于提升存储容量和处理能力。通过配置服务器、运行mongos进程和数据分片,实现数据在集群中的分布式存储。分片能够增加RAM、磁盘空间和服务器负载能力。配置过程包括设置配置服务器,启动mongos作为路由服务器,以及执行数据分片操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 分片 sharding

  分片是指将数据拆分,将起分散到不同服务器的过程.,将数据分散到不同的服务器上,可以存储更多的数据,处理更大的负载

  MongoDB分片机制允许你创建一个包含许多服务器(分片)的集群,将子数据分散在集群中.每个分片维护着一个数据集合的子集,相比单服务器和副本集,分片具备更好的处理能力.整个集群对于应用服务器来说像是只有一台单机的服务器.为了实现这样操作,我们需要在分片前先执行mongos 进行一次路由操作.整个路由服务器维护这一个"内容列表",指明了每个分片包含的数据,应用服务器请求数据时,路由服务器根据请求内容将请求内容转发到相应的分片,分片收到相应将请求的数据发送给路由服务器,返回给应用程序.

  分片的用途

1.增加可用RAM

2.增加可用的磁盘空间

3.增加服务器的负载能力

1.配置服务器

配置服务器是普通的mongod服务器,它保存集群的配置信息:1.集群中有那些分片2.分片有那些集合3.数据块的分布


mongod --configsvr --dbpath="服务器路径" --port 端口号
不论是开启还是创建配置服务器都要执行如下操作,然后再启动mongos进程供应用程序链接
例如:
mongod --configsvr --dbpath="C:\mock mongodb sever\server1" --port 27030

mongod --configsvr --dbpath="C:\mock mongodb sever\server2" --port 27031

mongod --configsvr --dbpath="C:\mock mongodb sever\server3" --port 27031

如下图:






2.mongos进程

3个配置服务器运行之后,启动mongos 配置服务器地址,这样可用通过mongos 访问集群了

mongos --configdb serviceAddress1:port1(默认:27019),serviceAddress2:port2,serviceAddress3:port3

mongos --port 27019 --configdb 127.0.0.1:27030,127.0.0.1:27031,127.0.0.1:27032


配置好服务器后.

mongo 127.0.0.1:27017



创建完成之后,
将副本集作为分片添加到集群

sh.addShard("replicationTest/127.0.0.1:1111,127.0.0.1:2222,127.0.0.1:3333,127.0.0.1:4444")



3.数据分片

 MongoDB不会自动对数据进行拆分,必须明确告诉数据库和集合.

 数据库启用分片 
 
sh.enableSharding("test")
对数据启用分片之后,对集合启用分片
sh.shardCollection("test.userInfo",{"username":1})
片键要建立索引



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值