为什么要选择MongoDB?

日期: 2013-07-10 作者:Altuğ Altıntaş翻译:Ranma 来源:TechTarget中国

近年来, NoSQL在IT界着实火了一把。不仅仅在互联网领域,越来越多的企业应用中,NoSQL也成为关系数据库管理系统(RDBMS)一种替代选项。   NoSQL的出现与流行是有原因的,数据量和数据处理速度日益增长,而数据库本身的增强可以满足数据在互联网上读写所需的速度。   相比于传统的关系型数据库管理系统,水平可扩展的NoSQL系统与之有着本质的区别: 关系数据库管理系统首先是基于事务的,遵循ACID规则。

而NoSQL系统并不完全支持ACID,而且许多NoSQL系统中并没有事务的概念。关系数据库管理系统中的数据位于固定的表和字段。而NoSQL系统并不依赖固定表和字段。NoSQL系统中并不使……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

近年来, NoSQL在IT界着实火了一把。不仅仅在互联网领域,越来越多的企业应用中,NoSQL也成为关系数据库管理系统(RDBMS)一种替代选项。

  NoSQL的出现与流行是有原因的,数据量和数据处理速度日益增长,而数据库本身的增强可以满足数据在互联网上读写所需的速度。

  相比于传统的关系型数据库管理系统,水平可扩展的NoSQL系统与之有着本质的区别:

  • 关系数据库管理系统首先是基于事务的,遵循ACID规则。而NoSQL系统并不完全支持ACID,而且许多NoSQL系统中并没有事务的概念。
  • 关系数据库管理系统中的数据位于固定的表和字段。而NoSQL系统并不依赖固定表和字段。
  • NoSQL系统中并不使用SQL查询。
  • 通过主键对数据进行分解在关系数据库管理系统中不是强制的。而NoSQL系统则是通过主键来访问数据的。

  正如上述提到的与关系数据库管理系统的差异,NoSQL系统可以分为主要的三大类:基于文档,基于键/值以及基于图形,每种类型的NoSQL系统对于数据一致性和数据访问策略都是有所差异的。

  MongoDB简介

  如今,市面上有很多NoSQL解决方案,而MongoDB是其中最为流行的解决方案。

  MongoDB是2007年起由10gen公司进行改良并在2009年已经成为拥有AGPL许可的开源项目。MongoDB将自身定位为一个开源的、易于扩展的文档型数据库。每条记录实际上都是以一个文档存在于MongoDB中。文档以JSON格式,二进制JSON (BSN) 存储在MongoDB中。BSON文档是包含有所存元素有序列表的对象。每条元素都由一个字段名和一个特定类型的值组成。以下对是传统关系数据库管理系统与MongoDB进行的对比:

 SQL

 MongoDB

 表

 集合

 行

 文档或BSON文档

 列

 字段

 索引

 索引

 表连接

 嵌入式文档或链接

 声明某一列或某些列作为主键

 自动设置_id字段为主键

 聚合(如Group by)

 聚合框架

  为什么选择MongoDB?

  是什么让MongoDB流行?以下列出的功能特性使它从众多NoSQL解决方案中脱颖而出。

  • 查询支持。MongoDB可以根据预定字段和特定范围进行查询,而且还能根据正则表达式进行查询,而许多NoSQL解决方案仅能够让你通过键对数据进行访问。
  • 辅助索引支持。关于使用预定字段进行查询,将这些字段定义为辅助索引可以对数据进行高效的访问。
  • 主从复制支持。对读写操作引导到各自独立的服务器进行处理,在主服务无法访问的时候运行一个备用服务器作为主服务器,提升NoSQL可用性。
  • 分片支持。跨多服务器对大规模数据进行分片是MongoDB有别于其同类的特性之一。
  • MapReduce支持。
  • 对众多软件语言的驱动支持。

  MongoDB更新版本号是2.4.5。免费下载地址:http://www.mongodb.org/downloads 同时还可以选择MongoDB商用版。

翻译

Ranma
Ranma

相关推荐