MongoDB技术交流

上传人:206****923 文档编号:51717555 上传时间:2018-08-16 格式:PPT 页数:23 大小:453KB
返回 下载 相关 举报
MongoDB技术交流_第1页
第1页 / 共23页
MongoDB技术交流_第2页
第2页 / 共23页
MongoDB技术交流_第3页
第3页 / 共23页
MongoDB技术交流_第4页
第4页 / 共23页
MongoDB技术交流_第5页
第5页 / 共23页
点击查看更多>>
资源描述

《MongoDB技术交流》由会员分享,可在线阅读,更多相关《MongoDB技术交流(23页珍藏版)》请在金锄头文库上搜索。

1、MongoDB技术交流主讲:劳惠明MongoDB简介 memcachedsqlserversiisiisMongo 是一个高性能,开源,无模式的文档型数据库 (采用文件内存映射机制),它在许多场景下可用于 替代传统的关系型数据库或键/值存储方式。Mongo使 用C+开发。MongoDB简介 Mongo 测试数据 (suse11-64bit、xeon3.6*2、4G DDR333、scsi73G*2无raid 的机器)1、insert 九百万条简单数据(3个字段):平均值大约在24000/s( 最高2.8W,最低2.1W);同时,插入第一个一百万和第九个一百万效 率没有明显差异,数据文件体积大概

2、在3.8G,比较大;2、select 一万条数据(有索引):5761ms,一千条大概在6ms左右 ,非常稳定;数据量约2千万,数据库300G的情况下,读写2000rps,CPU等系统消 耗是相当的低MongoDB简介 Mongo 当前稳定版是1.6.5比前一版本1.4做了很多改 进: # 改进和提高了并发性能。 # Mongodb存储文件申请磁盘空间的方式做了改进。 # 增加了$or等查询操作符。 # Replication的同步方面做了改进。select方面,性能提升显著,合计有83%性能提高 update方面有75%的性能提高MongoDB简介 特点高性能、易部署、易使用,存储数据非常方便

3、。主要功能特性有: *面向集合存储,易存储对象类型的数据。 *模式自由(没有行,列,关系等概念)。 *支持动态查询,拥有与sqlserver相似的查询功能 。 *支持完全索引,包含内部对象。 *支持查询。 *支持复制和故障恢复。 *使用高效的二进制数据存储,包括大型对象(如视频等)。 *自动处理碎片,以支持云计算层次的扩展性 *支持C#,Python,PHP,Ruby,Java,C,Javascript,Perl及C+语言的驱动程序 ,社区中也提供了对Erlang 及.NET等平台的驱动程序。 *文件存储格式为BSON(一种JSON的扩展) *可通过网络访问MongoDB简介 功能 1. 面向

4、集合的存储:适合存储对象及JSON形式的数据。 2. 动态查询:Mongo支持丰富的查询表达式。查询指令使用JSON形式的标记,可 轻易查询文档中内嵌的对象及数组。 3. 完整的索引支持:包括文档内嵌对象及数组。Mongo的查询优化器会分析查询 表达式,并生成一个高效的查询计划。 4. 查询监视:Mongo包含一个监视工具用于分析数据库操作的性能。 5. 复制及自动故障转移:Mongo数据库支持服务器之间的数据复制,支持主-从 模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移 。 6. 高效的传统存储方式:支持二进制数据及大型对象(如照片或视频) 7. 自动分片以支持云级别的

5、伸缩性:自动分片功能支持水平的数据库集群,可 动态添加额外的机器。 MongoDB简介 适用场合 1. 网站数据:Mongo非常适合实时的插入,更新与查询,并具备网站实时 数据存储所需的复制及高度伸缩性。 2. 缓存:由于性能很高,Mongo也适合作为信息基础设施的缓存层。在系 统重启之后,由Mongo搭建的持久化缓存层可以避免下层的数据源 过 载。 3. 大尺寸,低价值的数据:使用传统的关系型数据库存储一些数据时可 能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进 行存储。 4. 高伸缩性的场景:Mongo非常适合由数十或数百台服务器组成的数据库 。某公司经典案例:MongoDB

6、存储的数据量已超过 50亿,1.5TB 5. 用于对象及JSON数据的存储:Mongo的BSON数据格式非常适合文档化格 式的存储及查询。MongoDB简介 不适用场合 1.高度事务性的系统:例如银行或会计系统。传统的关系型数据库目 前还是更适用于需要大量原子性复杂事务的应用程序。1.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化 的查询方式。对于此类应用,数据仓库可能是更合适的选择。1.需要复杂SQL的问题MongoDB简介 谁在使用?MongoDB操作 安装 mongod -logpath D:webrootmongodblogMongoDB.log -logappend -

7、dbpath D:webrootmongodbdata -directoryperdb -serviceName MongoDB1 -port 25436 -install 注:此处是将 mongod.exe注册为windows服务 ,必须先在相应目录下建 立data与log目录,否则安装时提示错误MongoDB操作 普通操作 1、新建集合集: db.createCollection(“user“); 2、插入数据: db.user.insert(uid:1,username:“Falcon.C“,age:25); j = name: “mongo“; db.things.save(j); f

8、or( var i = 1; i db.user.update(uid:1,$set:age:26) #age=26 db.user.update(uid:1,$inc:age:-1) #age=age-1MongoDB操作 普通操作 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 = d

9、b.things.find(); print (tojson(cursor4); var arr = db.things.find().toArray(); arr5;MongoDB操作 普通操作 5、条件查询: db.things.find(name:“mongo“).forEach(function(x) print(tojson(x);); 等价于: SQL:SELECT * FROM things WHERE name=“mongo“db.things.find(x:4, j:true).forEach(function(x) print(tojson(x);); 等价于: SQL:S

10、ELECT j FROM things WHERE x=4MongoDB操作 普通操作 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 107、findOne用法 var mongo = db.things.findOne(name:“mongo“); print(tojson(mongo);8、limit用法 db.things.find().limit(3);Mon

11、goDB操作 索引db.u_info.insert(uid:1,name:“Falcon.C“,address:“Beijing“); db.u_info.insert(uid:2,name:“sexMan“,address:“Wuhan“); 添加: db.u_info.ensureIndex(uid:1); db.u_info.ensureIndex(name:1); 删除: db.u_info.dropIndex(“name_1“)查询索引 db.u_info.find(name:“Falcon.C“).explain(); 查询的条件中有索引时,查询走BtreeCursor 的索引,而没有索引时走BasicCursor。MongoDB操作 Mongo与Mysql语法对应关系图MongoDB操作 同步复制 1、Master对SlaveMaster bin/mongod -dbpath=/data/db/m_data -logpath=/data/db/m_log - -logappend -port=27017 -master -auth db.user.help();监控地址 http:/192.168.100.247:28017/数据访问接口 http:/192.168.100.247:28017/user/user/谢谢大家!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号