天天看點

MongoDB

MongoDB簡介

   MongoDB時一個高性能,開源,無模式的文檔型資料庫,時目前NoSQL資料庫中比較熱門的一種。它在需要場景下可用于替代傳統的關系型資料庫或鍵/值存儲方式

   傳統的關系性資料庫一般由資料庫(database),表(table),記錄(record)三個層次概念組成,MongoDB則是由資料庫(database),集合(collection),文檔對象(document)三個層次組成,MongoDB對應關系型資料庫中的表,但是集合中沒有列,行和關系的概念,這展現了模式自由的特點

MongoDB的特點

    高性能,易部署,易是喲個,存儲資料非常友善

MongoDB的功能

  • 面向集合的存儲:适合存儲對象及JSON形式的存儲
  • 模式自由
  • 動态查詢:Mongo支援豐富的查詢表達式。查詢指令使用JSON形式的标記,可輕易查詢文檔中内嵌的對象及數組
  • 完整的索引支援:包括文檔内嵌對象及數組。Mongo的查詢優化器會分析查詢表達式,并生成一個高效的查詢計劃
  • 查詢監視:Mongo包含一個監視工具,用于分析資料庫操作的性能
  • 複制及自動故障轉移:Mongo資料庫支援伺服器之間的資料複制,支援主-從模式及伺服器之間的互相複制。複制的主要目标時提供備援及自動故障轉移
  • 高效的傳統存儲方式:支援二進制資料及大型對象(如圖檔)
  • 自動分片及支援雲級别的伸縮性:自動分片功能支援水準的資料庫叢集,可動态添加額外的機器
  • 自動處理碎片,以及支援雲計算層次的擴充性
  • 支援Phthon,PHP,Ruby,C,C#,Javascript,Perl及C++語言的驅動程式,社群中也提供了對Erlang及.NET等平台的驅動程式
  • 支援存儲格式為BSON(一種jJSON的擴充)
  • 可通過網絡通路
  • 支援完全索引,包含内部對象

MongoDB的适用場合

  • 網絡資料:Mongo非常适合實施插入,更新與查詢,并具備網站實時資料存儲所需的複制及高度伸縮性
  • 緩存:由于性能很高,是以Mongo也适合作為資訊基礎設施的緩存層。在系統重新開機之後,由Mongo搭建的持久化層可以避免下層的資料源過載
  • 大尺寸,低價值的資料:使用傳統的關系型資料庫存儲一些資料時可能會比較昂貴。在次之前,很多時候程式員往往會選擇傳統的檔案進行存儲
  • 高伸縮性的場景:Mongo非常适合由數十或數百台伺服器組成的資料庫。Mongo的路線圖中已經包含對MapReduce引擎的内置支援
  • 對于及JSON資料的存儲:Mongo的BSON資料格式非常适合文檔化格式的存儲及查詢。