MongoDB概述

MongoDB是一个高性能、高可用的、自动伸缩的开源的文档型数据库。MongoDB数据库把文档存在集合collection)中。集合中的文档它们不须要相同的schema,每一个文档均可以有不一样的schema。 这使得MongoDB比传统的RDBMS更灵活,由于你不用为预先定义schema而操心。 数据库

如图所示:



编程

Document 数据库

  在MongoDB中一条记录就是一个document,是由 field 和值这样的键值对组成的数据结构。MongoDB的document相似于一个JSON对象,document中的 field 的值也能够包括其余的document ,数组和 document的数组。下图就是一个document的样例:数组

使用 document 的优势:服务器

  • 能够与许多编程语言中的本地数据类型相对应
  • 因为document支持嵌套,这样能够减小相似关系型数据库中的表链接操做,减小了性能开销
  • 动态的schema相对关系型数据的表的schema有更大的灵活度,好比方便的提供多态的特性

 

关键特性

高性能

MongoDB提供高性能的数据持久化。特别是:数据结构

  • 支持嵌入的数据模型能够减小 I/O的操做
  • 经过索引支持更快的查询,而且索引对嵌入的document和数组也有做用

 

丰富的查询语言

MongoDB提供丰富的查询语言支持CRUD的读写操做,而且还支持:负载均衡

  •  聚合管道,是一个基于数据处理管道概念的数据聚合的框架
  •  全文检索和地理化信息查询

高可用

MongoDB的复制机制又称 replica set (副本集),提供:框架

  •   自动故障转移
  •   数据冗余备份

一个副本集是一组MongoDB服务器,它们维护相同的数据集,提供冗余和增长数据可用性。编程语言

 

水平扩充

 MongoDB提供了水平的可伸缩性做为其核心功能的一部分:性能

  •  能够在一个集群的机器上进行数据切片
  •  从3.4开始,MongoDB支持基于分片键建立数据区(Zone)。在一个负载均衡的集群中,MongoDB读写操做能够只涉及到数据区内的那些分片数据。

支持多个存储引擎

 MongoDB支持如下存储引擎:spa

  •   WiredTiger 存储引擎 (包括支持空闲时密 ,这是Mongo默认的存储引擎)
  •   In-Memory 存储引擎
  •   MMAPv1存储引擎 (4.0版本被弃用)

此外,MongoDB还提供了可插入的存储引擎API,容许第三方为MongoDB开发存储引擎。

相关文章
相关标签/搜索