首頁  >  文章  >  資料庫  >  什麼是mongoDB資料庫

什麼是mongoDB資料庫

小云云
小云云原創
2017-11-24 09:52:032075瀏覽

身為程式設計師,我相信大家都要接觸資料庫,對於mysql和mongoDB也有相對的認識,對於mysql我們已經很了解了,現在我們就來簡單說說mongoDB資料庫。

MongoDB是一個基於分散式檔案儲存的資料庫,由C++語言編寫,旨在為WEB應用提供可擴展的高效能資料儲存解決方案。

MongoDB是一個介於關聯式資料庫和非關聯式資料庫之間的產品,是非關聯式資料庫當中功能最豐富,最像關聯式資料庫的。他支援的資料結構非常鬆散,是類似json的bson格式,因此可以儲存比較複雜的資料類型。 Mongo最大的特點是他支援的查詢語言非常強大,其語法有點類似於物件導向的查詢語言,幾乎可以實現類似關係型資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引。

mongoDB資料庫的特色:

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

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

所謂"面向集合"(Collection-Oriented),意思是資料被分組儲存在資料集中,稱為一個集合(Collection)。每個集合在資料庫中都有一個唯一的識別名,並且可以包含無限數目的文件。集合的概念類似關係型資料庫(RDBMS)裡的表(table),不同的是它不需要定義任何模式(schema)。 Nytro MegaRAID技術中的快閃記憶體快取演算法,能夠快速辨識資料庫內大數據集中的熱數據,提供一致的效能改進。

*模式自由(schema-free)。

採用無模式結構存儲,意味著對於儲存在mongodb資料庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的檔案儲存在同一個資料庫裡。採用無模式儲存資料是集合區別於RDBMS 中的表格的重要特徵。

*支援動態查詢。

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

可以在任意屬性上建立索引,包含內部物件。 MongoDB的索引和RDBMS 的索引基本上一樣,可以在指定屬性、內部物件上建立索引以提高查詢的速度。除此之外,MongoDB 還提供創建基於地理空間的索引的能力。

*支援查詢。

MongoDB 支援豐富的查詢操作,MongoDB 幾乎支援SQL中的大部分查詢。

*支援複製和故障復原。

MongoDB 支援主從複製機制,可實現資料備份、故障復原、讀取擴充等功能。而基於副本集的複製機制提供了自動故障復原的功能,確保了叢集資料不會遺失。

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

使用二進位格式存儲,可以保存任何類型的資料物件。

*自動處理碎片,以支援雲端運算層次的擴展性。

*支援RUBY,PYTHON,JAVA,C++,PHP,C#,Perl,JavaScript等多種語言。

MongoDB 提供了目前所有主流開發語言的資料庫驅動包,開發人員使用任何一種主流開發語言都可以輕鬆編程,實現存取MongoDB 資料庫。

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

BSON 是二進位格式的JSON 的簡稱,BSON 支援文件和陣列的巢狀。

*可透過網路存取。

可以透過網路遠端存取MongoDB 資料庫。

*強大的聚合工具

MongoDB 除了提供豐富的查詢功能外,還提供強大的聚合工具,如count、group 等,支援使用MapReduce 完成複雜的聚合任務。

MongoDB 除了提供豐富的查詢功能外,還提供強大的聚合工具,如count、group 等,支援使用MapReduce 完成複雜的聚合任務。

MongoDB 主要應用場景有:

(1)網站即時資料處理。它非常適合即時的插入、更新與查詢,並具備網站即時資料儲存所需的複製及高度伸縮性。

(2)快取。由於效能很高,它適合作為資訊基礎設施的快取層。在系統重新啟動之後,由它搭建的持久化快取層可以避免下層的資料來源過載。

(3)高伸縮性的場景。非常適合由數十或數百台伺服器組成的資料庫,它的路線圖中已經包含對MapReduce引擎的內建支援。

(4)大尺寸、低價值的數據,使用傳統的關係型資料庫儲存一些數據時可能會比較昂貴,在此之前,很多時候程式設計師往往會選擇傳統的文件進行儲存。

不適用的場景如下:

(1)要求高度事務性的系統,例如,銀行或會計系統。傳統的關係型資料庫目前還是更適用於需要大量原子性複雜事務的應用程式。

(2)傳統的商業智慧應用,例如針對特定問題的BI 資料庫會產生高度最佳化的查詢方式。對於此類應用,資料倉儲可能是更合適的選擇。

(3)複雜的跨文檔(表)級聯查詢。

以上內容就是關於mongoDB資料庫的簡單介紹,希望大家對mongoDB資料庫有所掌握。

相關推薦:

laravel使用mongodb資料庫的方法教學

phpstudy如何擴充MongoDB

#燕十八mongodb影片資料分享

#

以上是什麼是mongoDB資料庫的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn