1. 主页
  2. 文档
  3. MongoDB初学者教程——7天学习MongoDB
  4. MongoDB分片

MongoDB分片

MongoDB中的分片是什么?

分片是MongoDB中的一个概念,它将跨多个MongoDB实例的大型数据集拆分为小型数据集。

有时,MongoDB中的数据会非常庞大​​,以至于对如此大的数据集进行查询会导致服务器上大量的CPU被占用。为了解决这种情况,MongoDB提出了分片的概念,基本上是将数据集拆分到多个MongoDB实例中。

实际上,可能很大的集合实际上被称为多个集合或碎片。逻辑上,所有分片都作为一个集合工作。

如何实施分片

分片是通过使用集群实现的,这些集群不过是一组MongoDB实例。

分片的组成部分包括:

  1. 分片(Shard–基本上说,这不过是一个保存数据子集的MongoDB实例。在生产环境中,所有分片都必须是副本集的一部分。
  2. 配置服务器–一个mongodb实例,其中包含有关集群的元数据,基本上是有关将保存分片数据的各种mongodb实例的信息。
  3. 路由器–一个mongodb实例,主要负责将客户端发送的命令重定向到正确的服务器。

 

分片集群

第一步)为配置服务器创建一个单独的数据库。

mkdir /data/configdb

第二步)在配置模式下启动mongodb实例。假设有一个名为Server D的服务器作为配置服务器,则需要运行以下命令将服务器配置为配置服务器。

mongod –configdb ServerD: 27019

第三步)通过指定配置服务器启动mongos实例

mongos –configdb ServerD: 27019

第四步)使用mongo 命令连接到mongo的实例

mongo –host ServerD –port 27017

第五步)如果需要将服务器A和服务器B添加到集群中,请发出以下命令

sh.addShard(“ServerA:27017”)sh.addShard(“ServerB:27017”)

第六步)为数据库启用分片。如果我们需要对Employeedb数据库分片,请发出以下命令

sh.enableSharding(Employeedb)

第七步)为集合启用分片。如果我们需要对Employee集合分片,请发出以下命令

Sh.shardCollection(“db.Employee” , { “Employeeid” : 1 , “EmployeeName” : 1})

 

分片是MongoDB中的一个概念,它将跨多个MongoDB实例的大型数据集拆分为小型数据集。

 

译者:徐扬

源地址:https://www.guru99.com/mongodb-sharding-implementation.html

 

这篇文章对您有用吗?

我们要如何帮助您?

评论 抢沙发

评论前必须登录!