MongoDB

MongoDB 是一个基于分布式 文件存储的NoSQL数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。

MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

关系型数据库(SQLite、Oracle、mysql)特点

  • 关系模型指的就是二维表格模型
  • 通用的SQL语言使得操作关系型数据库非常方便
  • 固定的表结构;

MongoDB特点

  • 模式自由 :可以把不同结构的文档存储在同一个数据库里
  • 面向集合的存储:适合存储 JSON风格文件的形式,
  • 完整的索引支持:对任何属性可索引,
  • 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移。
  • 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器。
  • 丰富的查询:支持丰富的查询表达方式,查询指令使用JSON形式的标记,可轻易查询文档中的内嵌的对象及数组。
  • 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划。
  • 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)。

根据DB-Engines的排名统计,MongoDB综合排名第五(2016年8月数据,前四名分别是Oracle,MySQL,SQL Server,PostgreSQL),NoSQL领域(非RDBMS)里排名第一。

尤其是在2015年里,一口气发布了两个大版本,3月发布了3.0版本,11月发布3.2版本。在3.2版本中开始突破NoSQL的枷锁,提供了Join操作,可见其并不满足于NoSQL“独角兽”的称呼,目标早已定位成NewSQL,向RDBMS发起挑战。