1. 程式人生 > >MongoDB資料庫的介紹

MongoDB資料庫的介紹

   引言

   之前在專案中用到過MongoDB資料庫來存放專案中需要用到的照片,所以當時對這個東西研究了一下,但是當初

沒有怎麼總結,現在突然有用到了這個東西,感覺對這個東西還是不怎麼熟悉。但是之前在部落格園中看到的一篇部落格

比較好關於mongodb介紹,所以在這分享給大家:

   MongoDB簡介

  MongoDB是一個高效能,開源,無模式的文件型資料庫,是當前NoSql資料庫中比較熱門的一種。它在許多場景下

可用於替代傳統的關係型資料庫或鍵/值儲存方式。Mongo使用C++開發。Mongo的官方網站地址是:

http://www.mongodb.org/,讀者可以在此獲得更詳細的資訊。

   小插曲:什麼是NoSql?

  NoSql,全稱是 Not Only Sql,指的是非關係型的資料庫。下一代資料庫主要解決幾個要點:非關係型的、分佈

式的、開源的、水平可擴充套件的。原始的目的是為了大規模web應用,這場運動開始於2009年初,通常特性應用如:模

式自由、支援簡易複製、簡單的API、最終的一致性(非ACID)、大容量資料等。NoSQL被我們用得最多的當數key-

value儲存,當然還有其他的文件型的、列儲存、圖型資料庫、xml資料庫等。

  特點:



  高效能、易部署、易使用,儲存資料非常方便。主要功能特性有:


    面向集合儲存,易儲存物件型別的資料。

    模式自由。

    支援動態查詢。

    支援完全索引,包含內部物件。

    支援查詢。

    支援複製和故障恢復。

    使用高效的二進位制資料儲存,包括大型物件(如視訊等)。

    自動處理碎片,以支援雲端計算層次的擴充套件性

    支援Python,PHP,Ruby,Java,C,C#,Javascript,Perl及C++語言的驅動程式,社群中也提供了對Erlang

及.NET等平臺的驅動程式。

    檔案儲存格式為BSON(一種JSON的擴充套件)。

    可通過網路訪問。


  功能:


    面向集合的儲存:適合儲存物件及JSON形式的資料。

    動態查詢:Mongo支援豐富的查詢表示式。查詢指令使用JSON形式的標記,可輕易查詢文件中內嵌的物件及陣列。

    完整的索引支援:包括文件內嵌物件及陣列。Mongo的查詢優化器會分析查詢表示式,並生成一個高效的查詢計劃。

    查詢監視:Mongo包含一個監視工具用於分析資料庫操作的效能。

    複製及自動故障轉移:Mongo資料庫支援伺服器之間的資料複製,支援主-從模式及伺服器之間的相互複製。復

制的主要目標是提供冗餘及自動故障轉移。

    高效的傳統儲存方式:支援二進位制資料及大型物件(如照片或圖片)

    自動分片以支援雲級別的伸縮性:自動分片功能支援水平的資料庫叢集,可動態新增額外的機器。


  適用場合:



    網站資料:Mongo非常適合實時的插入,更新與查詢,並具備網站實時資料儲存所需的複製及高度伸縮性。

    快取:由於效能很高,Mongo也適合作為資訊基礎設施的快取層。在系統重啟之後,由Mongo搭建的持久化快取

層可以避免下層的資料來源 過載。

    大尺寸,低價值的資料:使用傳統的關係型資料庫儲存一些資料時可能會比較昂貴,在此之前,很多時候程式

員往往會選擇傳統的檔案進行儲存。

    高伸縮性的場景:Mongo非常適合由數十或數百臺伺服器組成的資料庫。Mongo的路線圖中已經包含對

MapReduce引擎的內建支援。

    用於物件及JSON資料的儲存:Mongo的BSON資料格式非常適合文件化格式的儲存及查詢。

   小結

   通過上面的總結對MongoDB資料庫的好處特點有了一定的瞭解,這樣我們會知道在專案中為什麼會用到這個東

西,以及我們用到這個東西會給我帶來什麼好處。那麼在下一篇部落格中給大家介紹MongoDB的安裝和啟動的幾種方

式。