MongoDB 分片:带示例的分步教程
什么是分片 MongoDB?
分片是 MongoDB它将大数据集拆分成多个小数据集 MongoDB 实例。
有时 MongoDB 数据量非常大,针对如此大数据集的查询会导致服务器 CPU 占用率过高。为了解决这种情况, MongoDB 有分片的概念,基本上就是将数据集拆分到多个 MongoDB 实例。
集合可能很大,但实际上会分成多个集合或所谓的分片。从逻辑上讲,所有分片都作为一个集合运行。
如何实现分片
分片是通过使用集群来实现的,集群只不过是一组 MongoDB 实例。
分片的组件包括
- 碎片 – 这是最基本的事情,这只不过是一个 MongoDB 保存数据子集的实例。在生产环境中,所有分片都需要成为副本集的一部分。
- 配置服务器 – 这是一个 mongodb 实例,它保存有关集群的元数据,基本上是有关将保存分片数据的各种 mongodb 实例的信息。
- 路由器 – 这是一个 mongodb 实例,主要负责将客户端发送的命令重定向到正确的服务器。
逐步分片 Cluster 例如:
步骤1) 为配置服务器创建一个单独的数据库。
mkdir /data/configdb
步骤2) 在配置模式下启动 mongodb 实例。假设我们有一个名为 Server D 的服务器作为我们的配置服务器,我们需要运行以下命令将该服务器配置为配置服务器。
mongod –configdb ServerD: 27019
步骤3) 通过指定配置服务器启动mongos实例
mongos –configdb ServerD: 27019
步骤4) 从 mongo shell 连接到 mongo 实例
mongo –host ServerD –port 27017
步骤5) 如果您需要将服务器 A 和服务器 B 添加到集群,请发出以下命令
sh.addShard("ServerA:27017") sh.addShard("ServerB:27017")
步骤6) 为数据库启用分片。因此,如果我们需要对 Employeedb 数据库进行分片,请发出以下命令
sh.enableSharding(Employeedb)
步骤7) 为集合启用分片。因此,如果我们需要对 Employee 集合进行分片,请发出以下命令
Sh.shardCollection("db.Employee" , { "Employeeid" : 1 , "EmployeeName" : 1})
概要:
- 如解释 教程分片是 MongoDB它将大数据集拆分成多个小数据集 MongoDB 实例。