[MongoDB教程] 1.簡介

  • MongoDB (名稱來自「humongous (巨大無比的)」), 是一個可擴展的高性能,開源,模式自由,面向文檔的NoSQL,基於 分佈式 文件存儲,由 C++ 語言編寫,設計之初旨在爲 WEB 應用提供可擴展的高性能數據存儲解決方案。mongodb

  • MongoDB使用的是內存映射存儲引擎,它會把磁盤IO操做轉換成內存操做,若是是讀操做,內存中的數據起到緩存的做用,若是是寫操做,內存還能夠把隨機的寫操做轉換成順序的寫操做,大幅度提高性能。數據庫

  • MongoDB 既擁有Key-Value存儲方式的高性能和高度伸縮性,也擁有傳統的RDBMS系統的豐富的功能,集二者的優點於一身。 介於關係數據庫和NoSQL之間,也是功能最豐富、最像關係數據庫的的NoSQL。後端

MongoDB官方文檔:https://docs.mongodb.com數組

MongoDB中文社區:http://www.mongoing.com緩存

 

MongoDB特色

  • 模式自由 :能夠把不一樣結構的文檔存儲在同一個數據庫裏
  • 面向集合的存儲:適合存儲 JSON風格文件的形式,
  • 完整的索引支持:對任何屬性可索引,
  • 複製和高可用性:支持服務器之間的數據複製,支持主-從模式及服務器之間的相互複製。複製的主要目的是提供冗餘及自動故障轉移。
  • 自動分片:支持水平的數據庫集羣,可動態添加額外的機器。
  • 豐富的查詢:支持豐富的查詢表達方式,查詢指令使用JSON形式的標記,可輕易查詢文檔中的內嵌的對象及數組。
  • 快速就地更新:查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃。
  • 高效的傳統存儲方式:支持二進制數據及大型對象(如圖片等...)。

根據DB-Engines的排名統計,MongoDB綜合排名第五(2017年10月數據,前四名分別是Oracle,MySQL,SQL Server,PostgreSQL),在NoSQL領域(非RDBMS)裏排名第一。服務器

 

適用場景

  • 網站數據: 適合實時的插入,更新與查詢,並具有網站實時數據存儲所需的複製及高度伸縮性。
  • 緩存: 因爲性能很高,也適合做爲信息基礎設施的緩存層。在系統重啓以後,搭建的持久化緩存能夠避免下層的數據源過載。
  • 高伸縮性的場景: 很是適合由數十或者數百臺服務器組成的數據庫。
  • 用於對象及JSON數據的存儲: MongoDB的BSON數據格式很是適合文檔格式化的存儲及查詢。

不適用的場景

  • 高度事物性的系統: 例如銀行或會計系統。傳統的關係型數據庫目前仍是更適用於須要大量原子性復瑣事務的應用程序。
  • 須要使用SQL語句解決的場景: MongoDB不支持SQL語句。

商業應用

  • 京東:使用MongoDB存儲商品信息,支持比價和關注功能.
  • 百度雲:使用MongoDB管理百度雲盤中500億條關於文件源信息的記錄.
  • CERN:著名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的數據使用MongoDB存儲。
  • The New York Times:世界領先的在線新聞門戶網站之一,使用MongoDB做爲內容存儲。
  • sourceforge.net,資源網站查找,建立和發佈開源軟件免費,使用MongoDB作後端存儲。
相關文章
相關標籤/搜索