SlideShare a Scribd company logo
1 of 39
Download to read offline
MongoDB 技术分享 主讲 :胡创健
分享目录 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 简介  memcached sqlserver s iis iis Mongo  是一个高性能,开源,无模式的文档型数据库 ( 采用文件内存映射机制 ) ,它在许多场景下可用于替代传统的关系型数据库或键 / 值存储方式。 Mongo 使用 C++ 开发。
MongoDB 版本对比 Mongo  当前稳定版是 1.8.2( 见附件 mongodb.rar ) 比前一版本 1.4 做了很多改进 ( 使用 C# 驱动 MongoDB.Driver.dll 和 MongoDB.Bson.dll( 见附件 C# 驱动类库 .rar )): #  改进和提高了并发性能。 # Mongodb 存储文件申请磁盘空间的方式做了改进。 #  增加了 $or 等查询操作符。 # Replication 的同步方面做了改进。 select 方面 , 性能提升显著,合计有 83% 性能提高 update 方面有 75% 的性能提高
MongoDB 性能测试  Mongo  测试数据 ( suse11-64bit 、 xeon3.6*2 、 4G DDR333 、 scsi73G*2 无 raid  的机器) 1 、 insert  九百万条简单数据( 3 个字段):平均值大约在 24000/s (最高 2.8W ,最低 2.1W );同时,插入第一个一百万和第九个一百万效率没有明显差异,数据文件体积大概在 3.8G ,比较大; 2 、 select  一万条数据(有索引): 57~61ms ,一千条大概在 6ms 左右,非常稳定; 数据量约 2 千万,数据库 300G 的情况下,读写 2000rps , CPU 等系统消耗是相当的低
MongoDB 特点 高性能、易部署、易使用,存储数据非常方便。主要功能特性有: * 面向集合存储,易存储对象类型的数据。  * 模式自由 ( 没有行,列,关系等概念 ) 。 * 支持动态查询 , 拥有与 sqlserver 相似的查询功能  。   * 支持完全索引,包含内部对象。  * 支持查询。  * 支持复制和故障恢复。  * 使用高效的二进制数据存储,包括大型对象(如视频等)。 * 自动处理碎片,以支持云计算层次的扩展性 * 支持 C# , Python , PHP , Ruby , Java , C , Javascript , Perl 及 C++ 语言的驱动程序,社区中也提供了对 Erlang  及 .NET 等平台的驱动程序。 * 文件存储格式为 BSON (一种 JSON 的扩展) * 可通过网络访问
模式自由 ,[object Object],[object Object],[object Object]
内存映射存储引擎 ,[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 安装 mongod --logpath D:ebrootongodbogongoDB.log --logappend --dbpath D:ebrootongodbata --directoryperdb --serviceName MongoDB1 --port 25436 --install  注:此处是将  mongod.exe 注册为 windows 服务 ,必须先在相应目录下建立 data 与 log 目录,否则安装时提示错误 ( 附件 mongodb.rar 为 mongodb 安装文件 )
MongoDB 命令行操作  普通操作 1 、新建集合集: > db.createCollection(&quot;user&quot;); 2 、 插 入数据: > db.user.insert({uid:1,username:&quot;Falcon.C&quot;,age:25}); > j = { name: &quot;mongo&quot;}; > db.things.save(j); > for( var i = 1; i < 10; i++ ) db.tables.save( { x:4, j:i } ); 3 、更新数据: > db.user.update({uid:1},{$set:{age:26}}) #age=26 > db.user.update({uid:1},{$inc:{age:-1}}) #age=age-1
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 命令行操作 普通操作 4 、查询: 4.1 遍历集 > var cursor = db.things.find(); > while (cursor.hasNext()) { print(tojson(cursor.next())); } 4.2  方法 2 > db.things.find().forEach( function(x){print(tojson(x));}); 4.3 、获取结果集 > var cursor = db.things.find(); > print (tojson(cursor[4])); > var arr = db.things.find().toArray(); > arr[5];
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object]
MongoDB 命令行操作 普通操作 5 、条件查询: > db.things.find({name:&quot;mongo&quot;}).forEach(function(x) { print(tojson(x));}); 等价于:  SQL : SELECT * FROM things WHERE name=&quot;mongo&quot; >db.things.find({x:4}, {j:true}).forEach(function(x) { print(tojson(x));}); 等价于: SQL : SELECT j FROM things WHERE x=4
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
企业管理器 MongodbVUE 监控 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 操作  普通操作 6 、 sort 用法 >db.things.find({tags :'economy'}).sort({ts:-1}).limit(10); 等价于: SQL: select * from things where 'economy' in tags order by ts DESC limit 10 7 、 findOne 用法 > var mongo = db.things.findOne({name:&quot;mongo&quot;}); > print(tojson(mongo)); 8 、 limit 用法 db.things.find().limit(3);
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 操作  索引 >db.u_info.insert({uid:1,name:&quot;Falcon.C&quot;,address:&quot;Beijing&quot;}); >db.u_info.insert({uid:2,name:&quot;sexMan&quot;,address:&quot;Wuhan&quot;}); 添加: >db.u_info.ensureIndex({uid:1}); >db.u_info.ensureIndex({name:1}); 删除: >db.u_info.dropIndex(&quot;name_1&quot;) 查询索引 >db.u_info.find({name:&quot;Falcon.C&quot;}).explain(); 查询的条件中有索引时,查询走 BtreeCursor  的索引,而没有索引时走 BasicCursor 。
C# 驱动操作 ( 对照命令行 ) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 的架构 ,[object Object]
MongoDB 的架构 ,[object Object]
Replica Set 模式 ,[object Object]
Master-Slave Replication 与 Replica Sets 集群方案比较 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
部署方法 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
设置集群查看状态命令 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 功能 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 适用场合 ,[object Object],[object Object],[object Object],[object Object],[object Object]
MongoDB 不适用场合 ,[object Object],[object Object],[object Object]
MongoDB 谁在用 ? 谁在使用 ?
Mongo 与 Mysql 语法对应关系图
MongoDB 操作  同步复制 1 、 Master 对 Slave [Master] bin/mongod --dbpath=/data/db/m_data --logpath=/data/db/m_log  --logappend --port=27017  --master  --auth & [Slave] bin/mongod --dbpath=/data/db/m_data --logpath=/data/db/m_log  --logappend --port=27017  --slave  --source=192.168.100.202:27017 --auth &
MongoDB 分布式 -Sharding( 碎片 )
MongoDB 技巧汇总  备份 ./mongodump -u admin -p 123456 -d user -o user -d db -o path 还原 ./mongorestore -u admin -p 123456 -d user -c user user/user/user.bson 帮助信息 db.help(); db.user.help();
linux 下 mongodb 的安装 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
小结 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
谢谢大家!

More Related Content

What's hot

【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimizationtbosstraining
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍yczealot
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍taotao1240
 
Spry框架的简单使用小结
Spry框架的简单使用小结Spry框架的简单使用小结
Spry框架的简单使用小结sunnylqm
 
D2 如何发现前端性能问题
D2 如何发现前端性能问题D2 如何发现前端性能问题
D2 如何发现前端性能问题aoao
 
Oracle Data Buffer Cache
Oracle Data Buffer CacheOracle Data Buffer Cache
Oracle Data Buffer CacheSky Jian
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1yiditushe
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化qiyutan
 
Python vs json 玩open data
Python vs json 玩open dataPython vs json 玩open data
Python vs json 玩open data政斌 楊
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流liuts
 
Practical Data Analysis in R
Practical Data Analysis in RPractical Data Analysis in R
Practical Data Analysis in RChun-Ming Chang
 
Mongo db部署架构之优先方案
Mongo db部署架构之优先方案Mongo db部署架构之优先方案
Mongo db部署架构之优先方案Lucien Li
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptxjames tong
 
Introduction to pig&zookeeper
Introduction to pig&zookeeperIntroduction to pig&zookeeper
Introduction to pig&zookeeperGuangyao Cheng
 
Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1Zianed Hou
 
搜索引擎技术介绍
搜索引擎技术介绍搜索引擎技术介绍
搜索引擎技术介绍bigqiang zou
 
SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具HO-HSUN LIN
 
大话redis设计实现
大话redis设计实现大话redis设计实现
大话redis设计实现rfyiamcool
 
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南HonestQiao
 

What's hot (19)

【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization【第一季第四期】JavaScript Optimization
【第一季第四期】JavaScript Optimization
 
Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍Nosql七种武器之长生剑 mongodb的使用介绍
Nosql七种武器之长生剑 mongodb的使用介绍
 
几种Nosql介绍
几种Nosql介绍几种Nosql介绍
几种Nosql介绍
 
Spry框架的简单使用小结
Spry框架的简单使用小结Spry框架的简单使用小结
Spry框架的简单使用小结
 
D2 如何发现前端性能问题
D2 如何发现前端性能问题D2 如何发现前端性能问题
D2 如何发现前端性能问题
 
Oracle Data Buffer Cache
Oracle Data Buffer CacheOracle Data Buffer Cache
Oracle Data Buffer Cache
 
Lucene2 4学习笔记1
Lucene2 4学习笔记1Lucene2 4学习笔记1
Lucene2 4学习笔记1
 
iOS程序设计-数据持久化
iOS程序设计-数据持久化iOS程序设计-数据持久化
iOS程序设计-数据持久化
 
Python vs json 玩open data
Python vs json 玩open dataPython vs json 玩open data
Python vs json 玩open data
 
Mongo db技术交流
Mongo db技术交流Mongo db技术交流
Mongo db技术交流
 
Practical Data Analysis in R
Practical Data Analysis in RPractical Data Analysis in R
Practical Data Analysis in R
 
Mongo db部署架构之优先方案
Mongo db部署架构之优先方案Mongo db部署架构之优先方案
Mongo db部署架构之优先方案
 
我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx我对后端优化的一点想法.pptx
我对后端优化的一点想法.pptx
 
Introduction to pig&zookeeper
Introduction to pig&zookeeperIntroduction to pig&zookeeper
Introduction to pig&zookeeper
 
Row Set初步学习V1.1
Row Set初步学习V1.1Row Set初步学习V1.1
Row Set初步学习V1.1
 
搜索引擎技术介绍
搜索引擎技术介绍搜索引擎技术介绍
搜索引擎技术介绍
 
SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具SQL Loader & Bulk Insert 大量資料匯入工具
SQL Loader & Bulk Insert 大量資料匯入工具
 
大话redis设计实现
大话redis设计实现大话redis设计实现
大话redis设计实现
 
Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南Coreseek/Sphinx 全文检索实践指南
Coreseek/Sphinx 全文检索实践指南
 

Viewers also liked

Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...MongoDB
 
Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015
Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015
Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015William Lyon
 

Viewers also liked (6)

Lucene实践
Lucene实践Lucene实践
Lucene实践
 
Memcached简介
Memcached简介Memcached简介
Memcached简介
 
Windbg入门
Windbg入门Windbg入门
Windbg入门
 
MongoDB DOC v1.5
MongoDB DOC v1.5MongoDB DOC v1.5
MongoDB DOC v1.5
 
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
Lessons Learned from Building a Multi-Tenant Saas Content Management System o...
 
Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015
Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015
Neo4j + MongoDB. Neo4j Doc Manager for Mongo Connector - GraphConnect SF 2015
 

Similar to Mongo db技术分享

Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享晓锋 陈
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析wavefly
 
J2ee经典学习笔记
J2ee经典学习笔记J2ee经典学习笔记
J2ee经典学习笔记yiditushe
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介振林 谭
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renrend0nn9n
 
基于Lucene的站内搜索
基于Lucene的站内搜索基于Lucene的站内搜索
基于Lucene的站内搜索fulin tang
 
基于Lucene的站内搜索
基于Lucene的站内搜索基于Lucene的站内搜索
基于Lucene的站内搜索fulin tang
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程Lixun Peng
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹國昭 張
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsHo Kim
 
Kindeditor设计思路v2
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2luolonghao
 
網站設計100步
網站設計100步網站設計100步
網站設計100步evercislide
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍areyouok
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍areyouok
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍topgeek
 
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句   oss 计算技术 - ossez info of tech107个常用javascript语句   oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of techYUCHENG HU
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训lotusprince
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 

Similar to Mongo db技术分享 (20)

Mongo db技术分享
Mongo db技术分享Mongo db技术分享
Mongo db技术分享
 
Google protocol buffers简析
Google protocol buffers简析Google protocol buffers简析
Google protocol buffers简析
 
J2ee经典学习笔记
J2ee经典学习笔记J2ee经典学习笔记
J2ee经典学习笔记
 
Nosql及其主要产品简介
Nosql及其主要产品简介Nosql及其主要产品简介
Nosql及其主要产品简介
 
Huangjing renren
Huangjing renrenHuangjing renren
Huangjing renren
 
基于Lucene的站内搜索
基于Lucene的站内搜索基于Lucene的站内搜索
基于Lucene的站内搜索
 
基于Lucene的站内搜索
基于Lucene的站内搜索基于Lucene的站内搜索
基于Lucene的站内搜索
 
MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程MySQL源码分析.01.代码结构与基本流程
MySQL源码分析.01.代码结构与基本流程
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
NoSQL-MongoDB介紹
NoSQL-MongoDB介紹NoSQL-MongoDB介紹
NoSQL-MongoDB介紹
 
PHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming SkillsPHP Coding Standard and 50+ Programming Skills
PHP Coding Standard and 50+ Programming Skills
 
Kindeditor设计思路v2
Kindeditor设计思路v2Kindeditor设计思路v2
Kindeditor设计思路v2
 
網站設計100步
網站設計100步網站設計100步
網站設計100步
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍腾讯大讲堂25 企业级搜索托管平台介绍
腾讯大讲堂25 企业级搜索托管平台介绍
 
Berserk js
Berserk jsBerserk js
Berserk js
 
107个常用javascript语句 oss 计算技术 - ossez info of tech
107个常用javascript语句   oss 计算技术 - ossez info of tech107个常用javascript语句   oss 计算技术 - ossez info of tech
107个常用javascript语句 oss 计算技术 - ossez info of tech
 
Asp.net mvc 培训
Asp.net mvc 培训Asp.net mvc 培训
Asp.net mvc 培训
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 

Mongo db技术分享

  • 2.
  • 3. MongoDB 简介 memcached sqlserver s iis iis Mongo 是一个高性能,开源,无模式的文档型数据库 ( 采用文件内存映射机制 ) ,它在许多场景下可用于替代传统的关系型数据库或键 / 值存储方式。 Mongo 使用 C++ 开发。
  • 4. MongoDB 版本对比 Mongo 当前稳定版是 1.8.2( 见附件 mongodb.rar ) 比前一版本 1.4 做了很多改进 ( 使用 C# 驱动 MongoDB.Driver.dll 和 MongoDB.Bson.dll( 见附件 C# 驱动类库 .rar )): # 改进和提高了并发性能。 # Mongodb 存储文件申请磁盘空间的方式做了改进。 # 增加了 $or 等查询操作符。 # Replication 的同步方面做了改进。 select 方面 , 性能提升显著,合计有 83% 性能提高 update 方面有 75% 的性能提高
  • 5. MongoDB 性能测试 Mongo 测试数据 ( suse11-64bit 、 xeon3.6*2 、 4G DDR333 、 scsi73G*2 无 raid 的机器) 1 、 insert 九百万条简单数据( 3 个字段):平均值大约在 24000/s (最高 2.8W ,最低 2.1W );同时,插入第一个一百万和第九个一百万效率没有明显差异,数据文件体积大概在 3.8G ,比较大; 2 、 select 一万条数据(有索引): 57~61ms ,一千条大概在 6ms 左右,非常稳定; 数据量约 2 千万,数据库 300G 的情况下,读写 2000rps , CPU 等系统消耗是相当的低
  • 6. MongoDB 特点 高性能、易部署、易使用,存储数据非常方便。主要功能特性有: * 面向集合存储,易存储对象类型的数据。 * 模式自由 ( 没有行,列,关系等概念 ) 。 * 支持动态查询 , 拥有与 sqlserver 相似的查询功能 。 * 支持完全索引,包含内部对象。 * 支持查询。 * 支持复制和故障恢复。 * 使用高效的二进制数据存储,包括大型对象(如视频等)。 * 自动处理碎片,以支持云计算层次的扩展性 * 支持 C# , Python , PHP , Ruby , Java , C , Javascript , Perl 及 C++ 语言的驱动程序,社区中也提供了对 Erlang 及 .NET 等平台的驱动程序。 * 文件存储格式为 BSON (一种 JSON 的扩展) * 可通过网络访问
  • 7.
  • 8.
  • 9. MongoDB 安装 mongod --logpath D:ebrootongodbogongoDB.log --logappend --dbpath D:ebrootongodbata --directoryperdb --serviceName MongoDB1 --port 25436 --install 注:此处是将 mongod.exe 注册为 windows 服务 ,必须先在相应目录下建立 data 与 log 目录,否则安装时提示错误 ( 附件 mongodb.rar 为 mongodb 安装文件 )
  • 10. MongoDB 命令行操作 普通操作 1 、新建集合集: > db.createCollection(&quot;user&quot;); 2 、 插 入数据: > db.user.insert({uid:1,username:&quot;Falcon.C&quot;,age:25}); > j = { name: &quot;mongo&quot;}; > db.things.save(j); > for( var i = 1; i < 10; i++ ) db.tables.save( { x:4, j:i } ); 3 、更新数据: > db.user.update({uid:1},{$set:{age:26}}) #age=26 > db.user.update({uid:1},{$inc:{age:-1}}) #age=age-1
  • 11.
  • 12.
  • 13. MongoDB 命令行操作 普通操作 4 、查询: 4.1 遍历集 > var cursor = db.things.find(); > while (cursor.hasNext()) { print(tojson(cursor.next())); } 4.2 方法 2 > db.things.find().forEach( function(x){print(tojson(x));}); 4.3 、获取结果集 > var cursor = db.things.find(); > print (tojson(cursor[4])); > var arr = db.things.find().toArray(); > arr[5];
  • 14.
  • 15. MongoDB 命令行操作 普通操作 5 、条件查询: > db.things.find({name:&quot;mongo&quot;}).forEach(function(x) { print(tojson(x));}); 等价于: SQL : SELECT * FROM things WHERE name=&quot;mongo&quot; >db.things.find({x:4}, {j:true}).forEach(function(x) { print(tojson(x));}); 等价于: SQL : SELECT j FROM things WHERE x=4
  • 16.
  • 17.
  • 18.
  • 19. MongoDB 操作 普通操作 6 、 sort 用法 >db.things.find({tags :'economy'}).sort({ts:-1}).limit(10); 等价于: SQL: select * from things where 'economy' in tags order by ts DESC limit 10 7 、 findOne 用法 > var mongo = db.things.findOne({name:&quot;mongo&quot;}); > print(tojson(mongo)); 8 、 limit 用法 db.things.find().limit(3);
  • 20.
  • 21. MongoDB 操作 索引 >db.u_info.insert({uid:1,name:&quot;Falcon.C&quot;,address:&quot;Beijing&quot;}); >db.u_info.insert({uid:2,name:&quot;sexMan&quot;,address:&quot;Wuhan&quot;}); 添加: >db.u_info.ensureIndex({uid:1}); >db.u_info.ensureIndex({name:1}); 删除: >db.u_info.dropIndex(&quot;name_1&quot;) 查询索引 >db.u_info.find({name:&quot;Falcon.C&quot;}).explain(); 查询的条件中有索引时,查询走 BtreeCursor 的索引,而没有索引时走 BasicCursor 。
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32. MongoDB 谁在用 ? 谁在使用 ?
  • 33. Mongo 与 Mysql 语法对应关系图
  • 34. MongoDB 操作 同步复制 1 、 Master 对 Slave [Master] bin/mongod --dbpath=/data/db/m_data --logpath=/data/db/m_log --logappend --port=27017 --master --auth & [Slave] bin/mongod --dbpath=/data/db/m_data --logpath=/data/db/m_log --logappend --port=27017 --slave --source=192.168.100.202:27017 --auth &
  • 36. MongoDB 技巧汇总 备份 ./mongodump -u admin -p 123456 -d user -o user -d db -o path 还原 ./mongorestore -u admin -p 123456 -d user -c user user/user/user.bson 帮助信息 db.help(); db.user.help();
  • 37.
  • 38.