Mongodb-非關係型的數據庫

1.mongodb的簡介html

  MongoDB(http://www.mongodb.org/)是一個高性能,開源(代震軍大牛正在研究MongoDB的源碼,你們能夠去看看http://www.cnblogs.com/daizhj/),模式自由(schema-free)的文檔型數據庫,它在許多場景下可用於替代傳統的關係型數據庫或鍵/值(key-value)存儲方式。MongoDB使用C++開發,java

2.他的特性有哪些?程序員

  (官方語言都是百度所得)mongodb

  • 面向集合的存儲:適合存儲對象及JSON形式的數據。
  • 動態查詢:MongoDB支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組。
  • 完整的索引支持:包括文檔內嵌對象及數組。MongoDB的查詢優化器會分析查詢表達式,並生成一個高效的查詢計劃。
  • 查詢監視:MongoDB包含一個監視工具用於分析數據庫操做的性能。
  • 複製及自動故障轉移:MongoDB數據庫支持服務器之間的數據複製,支持主從模式及服務器之間的相互複製。複製的主要目標是提供冗餘及自動故障轉移。
  • 高效的傳統存儲方式:支持二進制數據及大型對象(如照片或圖片)。
  • 自動分片以支持雲級別的伸縮性(處於早期alpha階段):自動分片功能支持水平的數據庫集羣,可動態添加額外的機器。 模式自由(schema-free),意味着對於存儲在MongoDB數據庫中的文件,咱們不須要知道它的任何結構定義。若是須要的話,你徹底能夠把不一樣結構的文件存儲在同一個數據庫裏。
  • 支持Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語言的驅動程序,社區中也提供了對Erlang及.NET等平臺的驅動程序。

3.都是適合什麼場合使用的?數據庫

  • 網站數據:MongoDB很是適合實時的插入,更新與查詢,並具有網站實時數據存儲所需的複製及高度伸縮性。 緩存:因爲性能很高,MongoDB也適合做爲信息基礎設施的緩存層。在系統重啓以後,由MongoDB搭建的持久化緩存層能夠避免下層的數據源過載。數組

  • 大尺寸,低價值的數據:使用傳統的關係型數據庫存儲一些數據時可能會比較昂貴,在此以前,不少時候程序員每每會選擇傳統的文件進行存儲。緩存

  • 高伸縮性的場景:MongoDB很是適合由數十或數百臺服務器組成的數據庫。MongoDB的路線圖中已經包含對MapReduce引擎的內置支持。服務器

  • 用於對象及JSON數據的存儲:MongoDB的BSON數據格式很是適合文檔化格式的存儲及查詢。 所謂「面向集合」(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱爲一個集合(Collenction)。每一個集合在數據庫中都有一個惟一的標識名,而且能夠包含無限數目的文檔。集合的概念相似關係型數據庫(RDBMS)裏的表(table),不一樣的是它不須要定義任何模式(schema)。運維

4.mongodb的語法總結和MySQL的對比工具

5.mongodb數據庫的優勢

  快速!(固然,這和具體的應用方式有關,一般來講,它比通常的關係型數據庫快5位左右。)
很高的可擴展性 – 輕輕鬆鬆就可實現PB級的存儲(可是可能咱們並不須要PB級的存儲,10TB可能就夠了)
他有一個很好的 replication 模式 (replica sets)
有很完善的Java API
他的存儲格式是Json的,這對Java來講很是好處理,對javascirpt亦然。
運維起來很是方便,你不用專門爲它安排一個管理員
它有一個很是活躍的社區(我提出的一個bug在20分鐘內就能獲得修復。多謝Elliot)
他的版本控制很是清楚。

相關文章
相關標籤/搜索