SlideShare a Scribd company logo
盛大网络 成江东 @snda DBA http:// www.goziwa.com QQ:1913908 2010-10 NOSQL 七种武器之长生剑 MongoDB 的使用介绍
一条曲线
思考 一.并发压力快速提高? 二.需求变化快? 三.数据水平拆分?
内  容 MongoDB 是什么 MongoDB 的特性 MongoDB 的适用场景 MongoDB 的与其它数据库的对比
MongoDB 是什么 NOSQL 数据库是什么? 非关系型的数据库,主要用于社区类 WEB2.0 网站。 主要解决: 对数据库高并发的需求 对海量数据的高效率存储和访问的需求 对数据库的高可扩展性和高可用性的需求
MongoDB 是什么 二.性能与一致性 -- 鱼与熊掌可兼得 ?
MongoDB 是什么 CAP 理论-鱼与熊掌不可得兼 一致性( C ) 可用性 (A) 分区容忍性 (P) 一个分布式系统最多只能同时满足两个。 CA :传统关系数据库  AP : key-value 数据库
MongoDB 是什么 所以, MongoDB 不能解决: 数据库事务一致性需求 数据库的写实时性和读实时性需求 对复杂的 SQL 查询,特别是多表关联查询的需求
MongoDB 是什么 三. MongoDB 数据库是什么? 取自“ humongous” (海量的) , 是由 10gen 开发并维护的一种开源,高性 能,可扩展,无模式,面向文档 (document-oriented) 的数据库,其内存储 的是一种  JSON-like 结构化数据。 它介于关系数据库和非关系数据库之间,是非关系数据库中最像关系数 据库的。 官网: http://www.mongodb.org/ 下载: http://www.mongodb.org/downloads 最新版本: 1.6.3(2010-09-23) 支持操作系统: Os X Linux Windows Solaris
MongoDB 的特性 一. JSON 格式文档数据库
MongoDB 的特性 document!=row  文档 { "_id" : ObjectId("4caeb59438336e36fcdb2b59"), "uid" : 11909, "uname " : " bird007 " , "address" : { "province" : " 湖北 ",   "city" : " 武汉“ ,   … }, … } { "_id" : ObjectId("4caeb59438336e36fc9306f4"), "uid" : 11910, "uname " : " magicman " ,  “ sex " : 0  … }
MongoDB 的特性 二.自由数据模式 支持在对象和数组内嵌入其它的对象和数组 Mongo 模式设计中的一个关键问题就是“是值得为这个对象新建一个集合呢,还是把这个对象嵌入到其它的集合中”。
MongoDB 的特性 三.全面索引支持 基本索引: db.t_user.ensureIndex({uname:1}) 唯一索引: db.t_user.ensureIndex({uname:1},{unique:true}) 内嵌文档中的 key : db.t_user.ensureIndex({"address.city":1}) 文档本身: db.t_user.ensureIndex({"address":1}) 复合索引: db.t_user.ensureIndex({"address.province":1,"address.city":1,"address.postcode":1,"address.room":1}) 在线索引: db.t_user.ensureIndex({uname:1}, {background:true});
MongoDB 的特性 四.复制和自动分片带来的高可用性
MongoDB 的特性 MongoDB  分片集群由 2 个以上的 shards,  1个以上的 config servers,  和任意数量的  mongos servers 组成,应用程序连接 mongos servers mongod 数据库服务器进程,类似于 mysqld replica set  是 N 个一组的  mongod  节点,协同工作可提供自动失效转移,是 replica pairs 的升级版 MongoDB v1.6  开始可以使用于生产环境
MongoDB 的特性 测试 : Auto sharding:  http://www.goziwa.com/?p=1015 Replica Set: http://www.goziwa.com/?p=1040 3 shards:192.168.0.15 ,192.168.0.16, 192.168.0.17 1 config:192.168.0.14 1 mongos:192.168.0.13
MongoDB 的特性 安装 php 驱动: pecl install mongo  Php 测试角本 test.php <?php // 连接 localhost:27017 $conn = new Mongo(); // 选择数据库 test $db = $conn->test; // 选择结果集 $collection = $db->app; for($i=1;$i<10000000;$i++){ $data1 = mktime(0,0,0,1,1,1950); $data2 = mktime(0,0,0,1,1,2000); $rand_time = rand($data1,$data2); $credate=date(“Y-m-d H:i:s”,$rand_time); $userid= rand(100000000,900000000); $appid= rand(1,50); $new = array(‘appid’ => $appid, ‘userid’ => $userid, ‘credate’ => $credate); $collection->insert($new); } ?>
MongoDB 的特性 发现在初期 , 分布不均匀 , 第一台 DB 上有 100 多万条 , 而第 2,3 台上各有 30 万条 ,20 万条。 增加一台服务器测试,继续插入数据到 500 万条后看发现数据已经变为
MongoDB 的特性 五.丰富的查询语句 In 查询  排序  查询分片  Count  Exists  正则  游标  数组元素个数  类型匹配  Javascript shell
MongoDB 的特性 六. Map/Reduce 是聚合和过滤数据的工具 m=function(){emit(this.sex,1);} r=function(key,value){ var count=0; for(i in value){ count+=value[i]; } return count; } res=db.t_user.mapReduce(m,r); db[res.result].find(); { &quot;_id&quot; : 0, &quot;value&quot; : 134211 } { &quot;_id&quot; : 1, &quot;value&quot; : 323445 }
MongoDB 的特性 七 . 性能优异 并发写的性能有 1.5 万每秒  无外键约束,无事务 异步写磁盘  八.其它特性 GridFS 使用方便, MongoDB  会自动创建数据库 (db) 和集合 (collection) ,无需显式执行。
MongoDB 的适用场景 一.适用场景 1 ,结构不固定,有数据嵌套 2 ,要求高并发性 3 ,经常需要做数据水平拆分 4 ,内存大于数据量(推荐) 二.不足之处 1 ,比较占用硬盘空间,性能受内存影响 2 ,性能依赖内存,同时无法指定内存大小,容易被其它程序占用 3 , MongonDB 不支持事务,不支持 join 4 ,每个 Document 的限制是最大不超过 4MB
MongoDB 的适用场景 三. Why MongoDB 性能优异 扩展力强 面向文档 部署简单 功能全面 易于开发 支持全面 邮件组 :http://groups.google.com/group/mongodb-user 豆瓣小组 :http://www.douban.com/group/mongodb/
MongoDB 的与其它数据库的对比 一. VS 二. VS  三. VS
 

More Related Content

PDF
Ria的强力后盾:rest+海量存储
PPT
内部MySQL培训.1.基础技能
PDF
张宴NGINX
PPTX
Mongo sharding
PDF
Documente de informare anexa nr 1 - formular de evaluare
PDF
White_Paper_Synthesis of Adaptive Designs in Clinical Trials_May2016.PDF
PDF
kultura_demokratikoa_aurkezpena.pdf
PDF
habitats_bosques.pdf
Ria的强力后盾:rest+海量存储
内部MySQL培训.1.基础技能
张宴NGINX
Mongo sharding
Documente de informare anexa nr 1 - formular de evaluare
White_Paper_Synthesis of Adaptive Designs in Clinical Trials_May2016.PDF
kultura_demokratikoa_aurkezpena.pdf
habitats_bosques.pdf

Viewers also liked (15)

PPTX
The art of storytelling and how it can help make a better world
PDF
Lehendakariaren urte amaierako mezua.pdf
PPTX
Creating subject web_site_with_google_sites
DOC
N E W S T U D Y O F G I T A N O V 8 D R
DOC
Corrupt Perspective Dr. Shriniwas Kashalikar
PDF
SLG's Market Perspective Update
PPT
CMVRo - The settlement status of veterinary profession in Romania
PDF
Convocatoria pcr 2016
PDF
A tecnoloxía na globalización do capital e na homoxeneización cultural
PDF
Guía breve sobre Artritis Idiopática Juvenil AIJ // Osakidetza - Gobierno Vasco
PPTX
PPSX
Consumer behavior in service
PDF
Understanding what works
PDF
Mosquito and Rodent Control
PPSX
Pricing of services
The art of storytelling and how it can help make a better world
Lehendakariaren urte amaierako mezua.pdf
Creating subject web_site_with_google_sites
N E W S T U D Y O F G I T A N O V 8 D R
Corrupt Perspective Dr. Shriniwas Kashalikar
SLG's Market Perspective Update
CMVRo - The settlement status of veterinary profession in Romania
Convocatoria pcr 2016
A tecnoloxía na globalización do capital e na homoxeneización cultural
Guía breve sobre Artritis Idiopática Juvenil AIJ // Osakidetza - Gobierno Vasco
Consumer behavior in service
Understanding what works
Mosquito and Rodent Control
Pricing of services
Ad

Similar to Nosql七种武器之长生剑 mongodb的使用介绍 (20)

PDF
Ria的强力后盾:rest+海量存储
PDF
No sql pour valtech tech days
KEY
Gelecex - Maven ile Akilli Projeler
PDF
NTTデータにおけるHadoopへの取り組み & Hadoop Summit 2010 レポート
PDF
CLR/H 55
PDF
Nodejs on android
PDF
DevInRio 2010 - NodeJS
PDF
FISL11 2010 - Automação de Datacenters
PPTX
以数据驱动为中心-FreeWheel
PDF
HTML5 WebSocket 발표 자료
PDF
IIS7.5概要 10月17日
PDF
20100925 sola-android
PDF
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
PDF
Webperfdays 2014 - common web performance mistakes
DOC
Java JNI 编程进阶
PPTX
Seguridad en Servicios Web
PPT
Jetty Introduction
PPT
可复制的前后端分离开发模式
PDF
分会场六用Storage foundation简化操作系统和存储系统的迁移
PDF
03 3-create-db-application-ado-dot-net Create Database Application with using...
Ria的强力后盾:rest+海量存储
No sql pour valtech tech days
Gelecex - Maven ile Akilli Projeler
NTTデータにおけるHadoopへの取り組み & Hadoop Summit 2010 レポート
CLR/H 55
Nodejs on android
DevInRio 2010 - NodeJS
FISL11 2010 - Automação de Datacenters
以数据驱动为中心-FreeWheel
HTML5 WebSocket 발표 자료
IIS7.5概要 10月17日
20100925 sola-android
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
Webperfdays 2014 - common web performance mistakes
Java JNI 编程进阶
Seguridad en Servicios Web
Jetty Introduction
可复制的前后端分离开发模式
分会场六用Storage foundation简化操作系统和存储系统的迁移
03 3-create-db-application-ado-dot-net Create Database Application with using...
Ad

More from thinkinlamp (20)

PPT
数据仓库
PPSX
对My sql dba的一些思考
PPTX
云端的数据库
PDF
My sql innovation work -innosql
PPSX
浅谈 My sql 性能调优
PPT
2011 06-12-why do we need the rabbit
PDF
2011 06-12-lamp-mysql-顾春江
PPT
蜘蛛
PPTX
大型微博应用Feed系统浅析
PDF
Enterprise connect
PPT
I os tech talk 观后感
PPT
网页游戏开发与敏捷开发
PPT
My sql自动化监控
PPTX
服务化的网站架构
PPTX
大型互联网应用架构设计
PPT
Php extension开发
PPT
大型Sns数据库设计
PDF
MySQL高可用
PDF
Mysql overview_20100811
PPT
面向搜索引擎的友好程序开发
数据仓库
对My sql dba的一些思考
云端的数据库
My sql innovation work -innosql
浅谈 My sql 性能调优
2011 06-12-why do we need the rabbit
2011 06-12-lamp-mysql-顾春江
蜘蛛
大型微博应用Feed系统浅析
Enterprise connect
I os tech talk 观后感
网页游戏开发与敏捷开发
My sql自动化监控
服务化的网站架构
大型互联网应用架构设计
Php extension开发
大型Sns数据库设计
MySQL高可用
Mysql overview_20100811
面向搜索引擎的友好程序开发

Nosql七种武器之长生剑 mongodb的使用介绍

  • 1. 盛大网络 成江东 @snda DBA http:// www.goziwa.com QQ:1913908 2010-10 NOSQL 七种武器之长生剑 MongoDB 的使用介绍
  • 4. 内 容 MongoDB 是什么 MongoDB 的特性 MongoDB 的适用场景 MongoDB 的与其它数据库的对比
  • 5. MongoDB 是什么 NOSQL 数据库是什么? 非关系型的数据库,主要用于社区类 WEB2.0 网站。 主要解决: 对数据库高并发的需求 对海量数据的高效率存储和访问的需求 对数据库的高可扩展性和高可用性的需求
  • 6. MongoDB 是什么 二.性能与一致性 -- 鱼与熊掌可兼得 ?
  • 7. MongoDB 是什么 CAP 理论-鱼与熊掌不可得兼 一致性( C ) 可用性 (A) 分区容忍性 (P) 一个分布式系统最多只能同时满足两个。 CA :传统关系数据库 AP : key-value 数据库
  • 8. MongoDB 是什么 所以, MongoDB 不能解决: 数据库事务一致性需求 数据库的写实时性和读实时性需求 对复杂的 SQL 查询,特别是多表关联查询的需求
  • 9. MongoDB 是什么 三. MongoDB 数据库是什么? 取自“ humongous” (海量的) , 是由 10gen 开发并维护的一种开源,高性 能,可扩展,无模式,面向文档 (document-oriented) 的数据库,其内存储 的是一种 JSON-like 结构化数据。 它介于关系数据库和非关系数据库之间,是非关系数据库中最像关系数 据库的。 官网: http://www.mongodb.org/ 下载: http://www.mongodb.org/downloads 最新版本: 1.6.3(2010-09-23) 支持操作系统: Os X Linux Windows Solaris
  • 10. MongoDB 的特性 一. JSON 格式文档数据库
  • 11. MongoDB 的特性 document!=row 文档 { &quot;_id&quot; : ObjectId(&quot;4caeb59438336e36fcdb2b59&quot;), &quot;uid&quot; : 11909, &quot;uname &quot; : &quot; bird007 &quot; , &quot;address&quot; : { &quot;province&quot; : &quot; 湖北 &quot;, &quot;city&quot; : &quot; 武汉“ , … }, … } { &quot;_id&quot; : ObjectId(&quot;4caeb59438336e36fc9306f4&quot;), &quot;uid&quot; : 11910, &quot;uname &quot; : &quot; magicman &quot; , “ sex &quot; : 0 … }
  • 12. MongoDB 的特性 二.自由数据模式 支持在对象和数组内嵌入其它的对象和数组 Mongo 模式设计中的一个关键问题就是“是值得为这个对象新建一个集合呢,还是把这个对象嵌入到其它的集合中”。
  • 13. MongoDB 的特性 三.全面索引支持 基本索引: db.t_user.ensureIndex({uname:1}) 唯一索引: db.t_user.ensureIndex({uname:1},{unique:true}) 内嵌文档中的 key : db.t_user.ensureIndex({&quot;address.city&quot;:1}) 文档本身: db.t_user.ensureIndex({&quot;address&quot;:1}) 复合索引: db.t_user.ensureIndex({&quot;address.province&quot;:1,&quot;address.city&quot;:1,&quot;address.postcode&quot;:1,&quot;address.room&quot;:1}) 在线索引: db.t_user.ensureIndex({uname:1}, {background:true});
  • 15. MongoDB 的特性 MongoDB 分片集群由 2 个以上的 shards, 1个以上的 config servers, 和任意数量的 mongos servers 组成,应用程序连接 mongos servers mongod 数据库服务器进程,类似于 mysqld replica set 是 N 个一组的 mongod 节点,协同工作可提供自动失效转移,是 replica pairs 的升级版 MongoDB v1.6 开始可以使用于生产环境
  • 16. MongoDB 的特性 测试 : Auto sharding: http://www.goziwa.com/?p=1015 Replica Set: http://www.goziwa.com/?p=1040 3 shards:192.168.0.15 ,192.168.0.16, 192.168.0.17 1 config:192.168.0.14 1 mongos:192.168.0.13
  • 17. MongoDB 的特性 安装 php 驱动: pecl install mongo Php 测试角本 test.php <?php // 连接 localhost:27017 $conn = new Mongo(); // 选择数据库 test $db = $conn->test; // 选择结果集 $collection = $db->app; for($i=1;$i<10000000;$i++){ $data1 = mktime(0,0,0,1,1,1950); $data2 = mktime(0,0,0,1,1,2000); $rand_time = rand($data1,$data2); $credate=date(“Y-m-d H:i:s”,$rand_time); $userid= rand(100000000,900000000); $appid= rand(1,50); $new = array(‘appid’ => $appid, ‘userid’ => $userid, ‘credate’ => $credate); $collection->insert($new); } ?>
  • 18. MongoDB 的特性 发现在初期 , 分布不均匀 , 第一台 DB 上有 100 多万条 , 而第 2,3 台上各有 30 万条 ,20 万条。 增加一台服务器测试,继续插入数据到 500 万条后看发现数据已经变为
  • 19. MongoDB 的特性 五.丰富的查询语句 In 查询 排序 查询分片 Count Exists 正则 游标 数组元素个数 类型匹配 Javascript shell
  • 20. MongoDB 的特性 六. Map/Reduce 是聚合和过滤数据的工具 m=function(){emit(this.sex,1);} r=function(key,value){ var count=0; for(i in value){ count+=value[i]; } return count; } res=db.t_user.mapReduce(m,r); db[res.result].find(); { &quot;_id&quot; : 0, &quot;value&quot; : 134211 } { &quot;_id&quot; : 1, &quot;value&quot; : 323445 }
  • 21. MongoDB 的特性 七 . 性能优异 并发写的性能有 1.5 万每秒 无外键约束,无事务 异步写磁盘 八.其它特性 GridFS 使用方便, MongoDB 会自动创建数据库 (db) 和集合 (collection) ,无需显式执行。
  • 22. MongoDB 的适用场景 一.适用场景 1 ,结构不固定,有数据嵌套 2 ,要求高并发性 3 ,经常需要做数据水平拆分 4 ,内存大于数据量(推荐) 二.不足之处 1 ,比较占用硬盘空间,性能受内存影响 2 ,性能依赖内存,同时无法指定内存大小,容易被其它程序占用 3 , MongonDB 不支持事务,不支持 join 4 ,每个 Document 的限制是最大不超过 4MB
  • 23. MongoDB 的适用场景 三. Why MongoDB 性能优异 扩展力强 面向文档 部署简单 功能全面 易于开发 支持全面 邮件组 :http://groups.google.com/group/mongodb-user 豆瓣小组 :http://www.douban.com/group/mongodb/
  • 25.  

Editor's Notes

  • #2: 大家好, 欢迎大家参加 培训主题 先自我介绍一下