MongoDB数据库技术总结

上传人:aa****6 文档编号:29214224 上传时间:2018-01-22 格式:DOC 页数:17 大小:623.50KB
返回 下载 相关 举报
MongoDB数据库技术总结_第1页
第1页 / 共17页
MongoDB数据库技术总结_第2页
第2页 / 共17页
MongoDB数据库技术总结_第3页
第3页 / 共17页
MongoDB数据库技术总结_第4页
第4页 / 共17页
MongoDB数据库技术总结_第5页
第5页 / 共17页
点击查看更多>>
资源描述

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

1、第 1 页 共 18 页MongoDB 数据库技术总结目录第 2 页 共 18 页第 1 章 MONGODB 简介 .3第 2 章 MONGODB 特性 .3第 3 章 MONGODB 工作方式 .6第 4 章 要点介绍 .7索引 .8capped collection.8复制与分片 .8性能 .9GridFS.9用合适的数据库做适合的事情 .9第 5 章 MONGODB 分布式复制 .9第 6 章 MONGODB 分布式部署及分片 .11第 7 章 MONGODB 性能对比 .14第 8 章 MONGODB 占用空间过大原因 .16第 3 页 共 18 页第 1章 MongoDB简介Mong

2、oDB是一款开源,高性能,可扩展,无模式,面向文档(与 JSON类似的数据模式)的数据库,它为时下最流行的编程语言提供了驱动,如PHP,Python,Perl,Ruby,JavaScript,C+等,支持全文索引,自动分片,跨 LAN或 WAN扩展,采用 Key/Value方式存储数据。MongoDB 服务端可运行在Linux、Windows 或 OS X平台,支持 32位和 64位应用。世界上最大的单词收录网站Wordnik就从 MySQL转向了 MongoDB。第 2章 MongoDB特性Mongo是一个高性能,开源,无模式的文档型数据库,它在许多场景下可用于替代传统的关系型数据库或键/值

3、存储方式。Mongo 使用 C+开发,提供了以下功能:面向集合的存储:适合存储对象及 JSON形式的数据。动态查询:Mongo 支持丰富的查询表达式。查询指令使用 JSON形式的标记,可轻易查询文档中内嵌的对象及数组。第 4 页 共 18 页完整的索引支持:包括文档内嵌对象及数组。Mongo 的查询优化器会分析查询表达式,并生成一个高效的查询计划。查询监视:Mongo 包含一个监视工具用于分析数据库操作的性能。复制及自动故障转移:Mongo 数据库支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目标是提供冗余及自动故障转移。高效的传统存储方式:支持二进制数据及大型对象

4、(如照片或图片)。自动分片以支持云级别的伸缩性(处于早期 alpha阶段):自动分片功能支持水平的数据库集群,可动态添加额外的机器。MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的 RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。根据官方网站的描述,Mongo 适合用于以下场景:网站数据:Mongo 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。缓存:由于性能很高,Mongo 也适合作为信息基础设施的缓存层。在系统重启之后,由 Mongo搭建的持久化缓存层可以避免下层的数据源过载。大尺寸,低价值的数据:使用传统的关系

5、型数据库存储一些数据时可能会比较昂贵,在此之前,很多时候程序员往往会选择传统的文件进行存储。高伸缩性的场景:Mongo 非常适合由数十或数百台服务器组成的数据库。Mongo的路线图中已经包含对 MapReduce引擎的内置支持。用于对象及 JSON数据的存储:Mongo 的 BSON数据格式非常适合文档化格式的存储及查询。自然,MongoDB 的使用也会有一些限制,例如它不适合:高度事务性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。第 5 页 共 18 页传统的商业智能应用:针对特定问题的 BI数据库会对产生高度优化的查询方式。对于此类应用,

6、数据仓库可能是更合适的选择。需要 SQL的问题MongoDB支持 OS X、Linux 及 Windows等操作系统,并提供了Python,PHP,Ruby,Java 及 C+语言的驱动程序,社区中也提供了对 Erlang及.NET等平台的驱动程序。所 谓 “面 向 集 合 ”( Collenction-Oriented) , 意 思 是 数 据 被 分 组 存 储 在 数据 集 中 , 被 称 为 一 个 集 合 ( Collenction)。 每 个 集 合 在 数 据 库 中 都 有 一 个 唯 一 的标 识 名 , 并 且 可 以 包 含 无 限 数 目 的 文 档 。 集 合 的 概

7、 念 类 似 关 系 型 数 据 库( RDBMS) 里 的 表 ( table) , 不 同 的 是 它 不 需 要 定 义 任 何 模 式 ( schema)。 模 式 自 由 ( schema-free), 意 味 着 对 于 存 储 在 mongodb 数 据 库 中 的 文 件 , 我们 不 需 要 知 道 它 的 任 何 结 构 定 义 。 如 果 需 要 的 话 , 你 完 全 可 以 把 不 同 结 构 的 文 件存 储 在 同 一 个 数 据 库 里 。 存 储 在 集 合 中 的 文 档 , 被 存 储 为 键 -值 对 的 形 式 。 键 用 于 唯 一 标 识 一 个

8、文 档 ,为 字 符 串 类 型 , 而 值 则 可 以 是 各 中 复 杂 的 文 件 类 型 。 我 们 称 这 种 存 储 形 式 为BSON( Binary Serialized dOcument Format) 。 MongoDB 服 务 端 可 运 行 在 Linux、 Windows 或 OS X 平 台 , 支 持 32 位 和 64位 应 用 , 默 认 端 口 为 27017。 推 荐 运 行 在 64 位 平 台 , 因 为 MongoDB 在 32 位 模 式运 行 时 支 持 的 最 大 文 件 尺 寸 为 2GB。第 6 页 共 18 页第 3章 MongoDB工作

9、方式第 7 页 共 18 页第 4章 要点介绍跟 mysqld一样,一个 mongod服务可以有建立多个数据库,每个数据库可以有多张表,这里的表名叫 collection,每个 collection可以存放多个文档(document),每个文档都以 BSON(binary json)的形式存放于硬盘中。跟关系型数据库不一样的地方是,它是的以单文档为单位存储的,你可以任意给一个或一批文档新增或删除字段,而不会对其它文档造成影响,这就是所谓的 schema-free,这也是文档型数据库最主要的优点。跟一般的 key-value数据库不一样的是,它的 value中存储了结构信息,所以你又可以像关系型

10、数据库那样对某些域进行读写、统计等操作。可以说是兼备了 key-value数据库的方便高效与关系型数据库的强大功能。第 8 页 共 18 页索引跟关系型数据库类似,mongodb 可以对某个字段建立索引,可以建立组合索引、唯一索引,也可以删除索引。当然建立索引就意味着增加空间开销,我的建议是,如果你能把一个文档作为一个对象的来考虑,在线上应用中,你通常只要对对象 ID建立一个索引即可,根据 ID取出对象某些数据放在 memcache即可。如果是后台的分析需要,响应要求不高,查询非索引的字段即便直接扫表也费不了太多时间。如果还受不了,就再建一个索引得了。默认情况下每个表都会有一个唯一索引:_id,如果插入数据时没有指定_id,服务会自动生成一个_id,为了充分利用已有索引,减少空间开销,最好是自己指定一个unique的 key为_id,通常用对象的 ID比较合适,比如商品的 ID。capped collectioncapped collection是一种特殊的表,它的建表命令为:db.createColl

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

当前位置:首页 > 办公文档 > 其它办公文档

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