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開發存儲引擎。

相關文章
相關標籤/搜索