SlideShare a Scribd company logo
基础篇基础篇{
"name" : "MongoDB",
"type" : "database",
"about" : {
"create" : 2007,
"first_version" : 2010,
"current_version" : 2015
},
"features" : ["open-source","document-
oriented","sharding"]
}
•
• 初识 MongoDB
•
• 简介,
• 术语,
• 结构,
• 3.0 特性,
•
•初识 MongoDB
•
• 简介,
• 术语,
• 结构,
• 3.0 特性,
•
初识mongoDB
• 面向文档 (binary JSON)
• schema free
• 易扩展
• 自动故障转移
• 查询语言丰富 MQL
• 使用内存映射文件(memory-mapped files)
• -- i.e. read-through write-through memory caching.
• 支持地理空间索引(2d index), TTL索引
• 单个文档大小限制 16M (1.8以前为4M)
• 不支持事务
• 不支持join 操作
初识mongoDB
• 锁粒度,<2.2 全局的读写锁, 2.2~2.6 1个DB1个锁, 3.0
MMAPv1 provides collection-level locking
• 对内存要求比较大,至少保证索引、热数据及系统开销都
能装进内存;
• -- 如果可以 indexSize + storageSize <= RAM
• 需要较大的硬盘空间,MongoDB会回收被删除的数据块,
但不会还给操作系统
• 每个collection都有一个默认的ObjectId;_id 可自定义,
值不可变更
• 默认"_id" : ObjectId("513ff10eda6c71894416ad8e")
RDBMS MongoDB
Table, View ➜ Collection
Row ➜ Document
Index ➜ Index
Join ➜ Embedded Document
Foreign Key ➜ Reference
Partition ➜ Shard
初识mongoDB
术 语
初识mongoDB
1 Doc
初识mongoDB
结 构
mongoDB 3.0
• 新的用户模块
• 新的存储引擎 — WiredTiger
document-Level Locking
compression
更高并发,更高写性能
• 开放插件式存储引擎API
•
• MongoDB Query Language
•
• insert,
• remove,
• update,
• find,
•
MongoDB Query Language
• insert
• > use cloud
• # 如果数据库不存在,则创建DB
• > db.contact.insert({name : "小明"})
• # 文本集写入记录,不需建表
• > db.contact.insert([{_id:1002 ,name : "丽丽"},{name:"Jhon"},{na
me:"Jack",city:"sz"}])
• # 可以一次写入多个文档
• # 如果不指定 _id ,则使用默认的 ObjectId
• remove
• > db.contact.remove({name:"Jhon"})
• > db.contact.remove({})
MongoDB Query Language
• update (query,update,options)
• > db.contact.update({_id:1001},{$set$set:{name:"王小明"}})
• # $set 将字段值设定为指定值
• > db.ids.update({_id:"contact"},{$inc$inc:{seq:1}})
• # $inc 对数字的增减操作
• > db.contact.update({_id:1001},{$rename$rename:{"uid":"uuid"}})
• # $rename 字段重命名
• > db.contact.update({},{$unset$unset:{test:""}}, {multi : true} )
• # $unset 删除符合条件的test 字段
•
• SQL : MQL :
MongoDB Query Language
• find
• > db.contact.find()
• # 返回文本集contact 的所有文档及字段
• > db.contact.find({uid:"b2cf"},{name:1})
• # 返回 uid="b2cf" 的name 值
• # SQL: select name from contact where uid = 'b2cf' ;
• > db.contact.find({ts:{$gte:Timestamp(1429027200,0),$lt : Time
stamp(1429100395,233)}}).limit(10)
• # 返回unixtime时间范围内的10 个文档
• > db.contact.find({name : /^王/}).sort({ts:-1})
• # 返回王姓的文档并按时间倒序 ~ like '王%';
• > db.contact.find({name:{$in:["Jack","小明"]}})
• # 返回name为"Jack" 和 "小明" 的文档
•
• Replica sets
•
• 什么是replica sets,
• 结构,
• Read preference modes,
•
•
Replica sets
What's Replica Sets ?
• 多个mongod 实例组成的集群
• 集群只有一个primary 节点
• 所有写操作在primary 进行
• 读可以在集群的任何数据节点
• 数据通过replication同步到各个secondary 节点
• 自动故障转移
• 一个集群支持节点多达50个
Replica sets
结 构
Replica sets
Read Preference Modes
• 5 modes
• -- primary [only, default]
• -- primaryPreferred
• -- secondary
• -- secondaryPreferred
• -- Nearest
•
•
•
•
• 数据集接近单个节点硬盘存储容量?
• 单台服务器内存不够用?
• 写操作频繁,磁盘IO达到极限?
•
•
Sharding
Sharding
• shard 保存了sharding集群的数据分片,通常是一个replica sets,
数据分片以collection为单位.
• shard key collection数据分片的键值.
• chunks mongodb根据shard key将数据分成块,按照rang、
hash或tag-aware规则将数据块储存到各个shard. 默认块大小为
64M.
•
Sharding
• config server 保存了sharding集群元数据,如:分片的位置.
通常设置三个config server.
• mongoS
• query router
• 让sharding集群像一个整体
• 缓存config server元数据
• auto-balancing ?
•
Thank you ~
http://weibo.com/tzhijunhttp://weibo.com/tzhijun

More Related Content

What's hot

深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo dbLucien Li
 
Js tree
Js treeJs tree
Js tree
lotusfox
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化
qiyutan
 
Go语言web开发
Go语言web开发Go语言web开发
Go语言web开发
Andy Shi
 
105-2 iOS程式設計(九)
105-2 iOS程式設計(九)105-2 iOS程式設計(九)
105-2 iOS程式設計(九)
Hao Lee
 
Mongodb
MongodbMongodb
Mongodbbj
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
Hermes Chiang
 
Script with engine
Script with engineScript with engine
Script with engineWebrebuild
 
JWT(JSON Web Token)簡介
JWT(JSON Web Token)簡介JWT(JSON Web Token)簡介
JWT(JSON Web Token)簡介
永嘉 劉
 
AJAX Basic
AJAX BasicAJAX Basic
AJAX Basic
Ryan Chung
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
Ho Kim
 
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starteryiming he
 
Mongo简介
Mongo简介Mongo简介
Mongo简介wuda0112
 
J Query Learn
J Query LearnJ Query Learn
J Query Learn
guestfb42fc
 
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
dong yuwei
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redis
paitoubing
 
Jbug beijing 2011 rest easy introduction [兼容模式]
Jbug beijing 2011  rest easy introduction [兼容模式]Jbug beijing 2011  rest easy introduction [兼容模式]
Jbug beijing 2011 rest easy introduction [兼容模式]jbossug
 
Mongo db部署架构之优先方案
Mongo db部署架构之优先方案Mongo db部署架构之优先方案
Mongo db部署架构之优先方案
Lucien Li
 

What's hot (19)

深入学习Mongo db
深入学习Mongo db深入学习Mongo db
深入学习Mongo db
 
Js tree
Js treeJs tree
Js tree
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化
 
Go语言web开发
Go语言web开发Go语言web开发
Go语言web开发
 
105-2 iOS程式設計(九)
105-2 iOS程式設計(九)105-2 iOS程式設計(九)
105-2 iOS程式設計(九)
 
Mongodb
MongodbMongodb
Mongodb
 
Mongo db 特性
Mongo db 特性Mongo db 特性
Mongo db 特性
 
Script with engine
Script with engineScript with engine
Script with engine
 
JWT(JSON Web Token)簡介
JWT(JSON Web Token)簡介JWT(JSON Web Token)簡介
JWT(JSON Web Token)簡介
 
AJAX Basic
AJAX BasicAJAX Basic
AJAX Basic
 
Web Caching Architecture and Design
Web Caching Architecture and DesignWeb Caching Architecture and Design
Web Caching Architecture and Design
 
KISSY for starter
KISSY for starterKISSY for starter
KISSY for starter
 
Mongo简介
Mongo简介Mongo简介
Mongo简介
 
J Query Learn
J Query LearnJ Query Learn
J Query Learn
 
nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用nodejs在微博前端开发中的应用
nodejs在微博前端开发中的应用
 
高性能No sql数据库redis
高性能No sql数据库redis高性能No sql数据库redis
高性能No sql数据库redis
 
Jbug beijing 2011 rest easy introduction [兼容模式]
Jbug beijing 2011  rest easy introduction [兼容模式]Jbug beijing 2011  rest easy introduction [兼容模式]
Jbug beijing 2011 rest easy introduction [兼容模式]
 
Mongo db部署架构之优先方案
Mongo db部署架构之优先方案Mongo db部署架构之优先方案
Mongo db部署架构之优先方案
 
Ooredis
OoredisOoredis
Ooredis
 

Viewers also liked

Islam
IslamIslam
TEST
TESTTEST
CPT License #
CPT License #CPT License #
CPT License #
Michelle Chang
 
Presentación sistemas operativos - UNAD_221120_112
Presentación sistemas operativos - UNAD_221120_112Presentación sistemas operativos - UNAD_221120_112
Presentación sistemas operativos - UNAD_221120_112
Andrés David
 
Joe Bollig
Joe Bollig Joe Bollig
Joe Bollig
Joseph Bollig
 
Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...
Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...
Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...
IPAE
 
Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...
Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...
Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...
IPAE
 
Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...
Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...
Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...
IPAE
 
Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015
Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015
Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015
IPAE
 
David Bauman, Director de Pro Rural - CADE por la Educación
David Bauman, Director de Pro Rural - CADE por la EducaciónDavid Bauman, Director de Pro Rural - CADE por la Educación
David Bauman, Director de Pro Rural - CADE por la Educación
IPAE
 
Exemplo do uso de BPMN
Exemplo do uso de BPMNExemplo do uso de BPMN
Exemplo do uso de BPMN
Luis Borges Gouveia
 
Colgate Digital Strategy
Colgate Digital StrategyColgate Digital Strategy
Colgate Digital Strategy
Lia Davis
 
Reflexión módulo 3
Reflexión módulo 3Reflexión módulo 3
Reflexión módulo 3
César Gutiérrez Vivanco
 
Reflexión módulo 3
Reflexión módulo 3Reflexión módulo 3
Reflexión módulo 3
César Gutiérrez Vivanco
 

Viewers also liked (14)

Islam
IslamIslam
Islam
 
TEST
TESTTEST
TEST
 
CPT License #
CPT License #CPT License #
CPT License #
 
Presentación sistemas operativos - UNAD_221120_112
Presentación sistemas operativos - UNAD_221120_112Presentación sistemas operativos - UNAD_221120_112
Presentación sistemas operativos - UNAD_221120_112
 
Joe Bollig
Joe Bollig Joe Bollig
Joe Bollig
 
Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...
Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...
Freddy Peñafiel, Viceministro de Educación de Ecuador - CADE por la Educación...
 
Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...
Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...
Guillermo Garrido Lecca, Gerente General de Pacífico EPS - CADE por la Educac...
 
Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...
Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...
Diana Mejía, Especialista Sénior de Políticas Públicas y Competitividad de la...
 
Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015
Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015
Juan Stoessel, CEO de Casa Andina Hoteles - CADE por la Educación 2015
 
David Bauman, Director de Pro Rural - CADE por la Educación
David Bauman, Director de Pro Rural - CADE por la EducaciónDavid Bauman, Director de Pro Rural - CADE por la Educación
David Bauman, Director de Pro Rural - CADE por la Educación
 
Exemplo do uso de BPMN
Exemplo do uso de BPMNExemplo do uso de BPMN
Exemplo do uso de BPMN
 
Colgate Digital Strategy
Colgate Digital StrategyColgate Digital Strategy
Colgate Digital Strategy
 
Reflexión módulo 3
Reflexión módulo 3Reflexión módulo 3
Reflexión módulo 3
 
Reflexión módulo 3
Reflexión módulo 3Reflexión módulo 3
Reflexión módulo 3
 

Similar to MongoDB Basic

NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
國昭 張
 
Mongo db introduction
Mongo db introductionMongo db introduction
Mongo db introductionDai Qifeng
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享晓锋 陈
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
Zoom Quiet
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
liuts
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计mingjin
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
Zoom Quiet
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
Ho Kim
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介振林 谭
 
Couchdb Beijing Openparty
Couchdb Beijing OpenpartyCouchdb Beijing Openparty
Couchdb Beijing Openpartylitaocheng
 
Cassandra
CassandraCassandra
Cassandra
FEG
 
Mysql遇到的一些问题
Mysql遇到的一些问题Mysql遇到的一些问题
Mysql遇到的一些问题
wang tongchao
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
dennis zhuang
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)My own sweet home!
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kaoxwcoder
 
借助 MongoDB 实现扩展
借助 MongoDB 实现扩展借助 MongoDB 实现扩展
借助 MongoDB 实现扩展
MongoDB
 
NoSQL-MongoDB
NoSQL-MongoDBNoSQL-MongoDB
NoSQL-MongoDB
艾鍗科技
 
Node develop expirements
Node develop expirementsNode develop expirements
Node develop expirements
aleafs
 

Similar to MongoDB Basic (20)

NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
Mongo db introduction
Mongo db introductionMongo db introduction
Mongo db introduction
 
Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
 
使用Dsl改善软件设计
使用Dsl改善软件设计使用Dsl改善软件设计
使用Dsl改善软件设计
 
111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql111030 gztechparty-小路-云时代的mysql
111030 gztechparty-小路-云时代的mysql
 
Comment System of 56.com
Comment System of 56.comComment System of 56.com
Comment System of 56.com
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介
 
Couchdb Beijing Openparty
Couchdb Beijing OpenpartyCouchdb Beijing Openparty
Couchdb Beijing Openparty
 
Cassandra
CassandraCassandra
Cassandra
 
Mysql遇到的一些问题
Mysql遇到的一些问题Mysql遇到的一些问题
Mysql遇到的一些问题
 
一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生一个 Mongodb command 的前世今生
一个 Mongodb command 的前世今生
 
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
開放原始碼 Ch2.4   app - oss - db (ver 1.0)開放原始碼 Ch2.4   app - oss - db (ver 1.0)
開放原始碼 Ch2.4 app - oss - db (ver 1.0)
 
Template mb-kao
Template mb-kaoTemplate mb-kao
Template mb-kao
 
Javascript
JavascriptJavascript
Javascript
 
借助 MongoDB 实现扩展
借助 MongoDB 实现扩展借助 MongoDB 实现扩展
借助 MongoDB 实现扩展
 
NoSQL-MongoDB
NoSQL-MongoDBNoSQL-MongoDB
NoSQL-MongoDB
 
Node develop expirements
Node develop expirementsNode develop expirements
Node develop expirements
 
Fl介绍
Fl介绍Fl介绍
Fl介绍
 

MongoDB Basic

  • 1. 基础篇基础篇{ "name" : "MongoDB", "type" : "database", "about" : { "create" : 2007, "first_version" : 2010, "current_version" : 2015 }, "features" : ["open-source","document- oriented","sharding"] }
  • 2. • • 初识 MongoDB • • 简介, • 术语, • 结构, • 3.0 特性, •
  • 3. •初识 MongoDB • • 简介, • 术语, • 结构, • 3.0 特性, •
  • 4. 初识mongoDB • 面向文档 (binary JSON) • schema free • 易扩展 • 自动故障转移 • 查询语言丰富 MQL • 使用内存映射文件(memory-mapped files) • -- i.e. read-through write-through memory caching. • 支持地理空间索引(2d index), TTL索引 • 单个文档大小限制 16M (1.8以前为4M) • 不支持事务 • 不支持join 操作
  • 5. 初识mongoDB • 锁粒度,<2.2 全局的读写锁, 2.2~2.6 1个DB1个锁, 3.0 MMAPv1 provides collection-level locking • 对内存要求比较大,至少保证索引、热数据及系统开销都 能装进内存; • -- 如果可以 indexSize + storageSize <= RAM • 需要较大的硬盘空间,MongoDB会回收被删除的数据块, 但不会还给操作系统 • 每个collection都有一个默认的ObjectId;_id 可自定义, 值不可变更 • 默认"_id" : ObjectId("513ff10eda6c71894416ad8e")
  • 6. RDBMS MongoDB Table, View ➜ Collection Row ➜ Document Index ➜ Index Join ➜ Embedded Document Foreign Key ➜ Reference Partition ➜ Shard 初识mongoDB 术 语
  • 9. mongoDB 3.0 • 新的用户模块 • 新的存储引擎 — WiredTiger document-Level Locking compression 更高并发,更高写性能 • 开放插件式存储引擎API
  • 10. • • MongoDB Query Language • • insert, • remove, • update, • find, •
  • 11. MongoDB Query Language • insert • > use cloud • # 如果数据库不存在,则创建DB • > db.contact.insert({name : "小明"}) • # 文本集写入记录,不需建表 • > db.contact.insert([{_id:1002 ,name : "丽丽"},{name:"Jhon"},{na me:"Jack",city:"sz"}]) • # 可以一次写入多个文档 • # 如果不指定 _id ,则使用默认的 ObjectId • remove • > db.contact.remove({name:"Jhon"}) • > db.contact.remove({})
  • 12. MongoDB Query Language • update (query,update,options) • > db.contact.update({_id:1001},{$set$set:{name:"王小明"}}) • # $set 将字段值设定为指定值 • > db.ids.update({_id:"contact"},{$inc$inc:{seq:1}}) • # $inc 对数字的增减操作 • > db.contact.update({_id:1001},{$rename$rename:{"uid":"uuid"}}) • # $rename 字段重命名 • > db.contact.update({},{$unset$unset:{test:""}}, {multi : true} ) • # $unset 删除符合条件的test 字段 • • SQL : MQL :
  • 13. MongoDB Query Language • find • > db.contact.find() • # 返回文本集contact 的所有文档及字段 • > db.contact.find({uid:"b2cf"},{name:1}) • # 返回 uid="b2cf" 的name 值 • # SQL: select name from contact where uid = 'b2cf' ; • > db.contact.find({ts:{$gte:Timestamp(1429027200,0),$lt : Time stamp(1429100395,233)}}).limit(10) • # 返回unixtime时间范围内的10 个文档 • > db.contact.find({name : /^王/}).sort({ts:-1}) • # 返回王姓的文档并按时间倒序 ~ like '王%'; • > db.contact.find({name:{$in:["Jack","小明"]}}) • # 返回name为"Jack" 和 "小明" 的文档
  • 14. • • Replica sets • • 什么是replica sets, • 结构, • Read preference modes, • •
  • 15. Replica sets What's Replica Sets ? • 多个mongod 实例组成的集群 • 集群只有一个primary 节点 • 所有写操作在primary 进行 • 读可以在集群的任何数据节点 • 数据通过replication同步到各个secondary 节点 • 自动故障转移 • 一个集群支持节点多达50个
  • 17. Replica sets Read Preference Modes • 5 modes • -- primary [only, default] • -- primaryPreferred • -- secondary • -- secondaryPreferred • -- Nearest
  • 20. Sharding • shard 保存了sharding集群的数据分片,通常是一个replica sets, 数据分片以collection为单位. • shard key collection数据分片的键值. • chunks mongodb根据shard key将数据分成块,按照rang、 hash或tag-aware规则将数据块储存到各个shard. 默认块大小为 64M. •
  • 21. Sharding • config server 保存了sharding集群元数据,如:分片的位置. 通常设置三个config server. • mongoS • query router • 让sharding集群像一个整体 • 缓存config server元数据 • auto-balancing ? •