首頁 資料庫 MongoDB 詳解MongoDB之特性、原理、使用情境、應用案例

詳解MongoDB之特性、原理、使用情境、應用案例

Aug 19, 2020 am 11:06 AM
mongodb

詳解MongoDB之特性、原理、使用情境、應用案例

推薦:《MongoDB影片教學

#簡介

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

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

特點

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

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

*模式自由。

*支援動態查詢。

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

*支援查詢。

*支援複製和故障復原。

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

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

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

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

*可透過網路存取。

使用原則

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

       模式自由(schema-free),表示對於儲存在mongodb資料庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的檔案儲存在同一個資料庫裡。

       儲存在集合中的文檔,被儲存為鍵-值對的形式。鍵用於唯一標識一個文檔,為字串類型,而值則可以是各種複雜的文件類型。我們稱這種儲存形式為BSON(Binary Serialized Document Format)。

MongoDB已經在多個網站部署

主要場景:

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

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

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

不適用的場景如下: 

1)要求高度事務性的系統。

2)傳統的商業智慧應用。

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

系統介紹

       分散式檔案系統(Distributed File System)是指檔案系統管理的實體儲存資源不一定直接連接在本機節點上,而是透過電腦網路與節點相連。分散式檔案系統的設計是基於客戶機/伺服器模式。一個典型的網路可能包括多個供多用戶存取的伺服器。另外,對等特性允許一些系統扮演客戶機和伺服器的雙重角色。

        HBase是一個分散式的、以列導向的開源資料庫,該技術來自Fay Chang 所撰寫的Google論文「Bigtable:一個結構化資料的分散式儲存系統。

   Data Mart是基於自有技術研發的一款資料儲存、資料處理的軟體。Yonghong Data Mart的分散式檔案儲存系統(ZDFS)是在Hadoop HDFS基礎上進行的改造和擴展,將伺服器叢集內所有節點上儲存的文件統一管理和儲存。

適用場景

        MongoDB 的主要目標是在鍵/值儲存方式(提供了高效能和高度伸縮)和傳統的RDBMS 系統(具有豐富的功能)之間架起一座橋樑,它集兩者的優勢於一身。根據官方網站的描述,Mongo 適用於以下場景。

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

● 快取:由於效能很高,Mongo 也適合作為資訊基礎架構的快取層。在系統重新啟動之後,由Mongo 建構的持久化快取層可以避免下層的資料來源過載。

● 大尺寸、低價值的資料:使用傳統的關係型資料庫儲存一些資料時可能會比較昂貴,在此之前,很多時候程式設計師往往會選擇傳統的檔案來儲存。

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

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

不適場景

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

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

● 需要SQL 的問題。

應用案例

        在下列出一些公司MongoDB的實際應用:

    •        數十億筆記錄。
    • FourSquare,基於位置的社群網站,在Amazon EC2的伺服器上使用MongoDB分享資料。
      Shutterfly,以互聯網為基礎的社會和個人出版服務,使用MongoDB的各種持久性資料儲存的要求。
      bit.ly, 一個基於Web的網址縮短服務,使用MongoDB的儲存自己的資料。
      spike.com,一個MTV網路的聯營公司, spike.com使用MongoDB的。
      Intuit公司,一個為小型企業和個人的軟體和服務供應商,為小型企業使用MongoDB的追蹤使用者的資料。
      sourceforge.net,資源網站查找,創建和發布開源軟體免費,使用MongoDB的後端儲存。
      etsy.com ,一個購買和出售手工製作物品網站,使用MongoDB。
      紐約時報,領先的線上新聞入口網站之一,使用MongoDB。
      CERN,著名的粒子物理研究所,歐洲核子研究中心大型強子對撞機的資料使用MongoDB。

以上是詳解MongoDB之特性、原理、使用情境、應用案例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

net4.0有什麼用 net4.0有什麼用 May 10, 2024 am 01:09 AM

.NET 4.0 用於創建各種應用程序,它為應用程式開發人員提供了豐富的功能,包括:物件導向程式設計、靈活性、強大的架構、雲端運算整合、效能最佳化、廣泛的程式庫、安全性、可擴展性、資料存取和行動開發支援。

如何在Debian上配置MongoDB自動擴容 如何在Debian上配置MongoDB自動擴容 Apr 02, 2025 am 07:36 AM

本文介紹如何在Debian系統上配置MongoDB實現自動擴容,主要步驟包括MongoDB副本集的設置和磁盤空間監控。一、MongoDB安裝首先,確保已在Debian系統上安裝MongoDB。使用以下命令安裝:sudoaptupdatesudoaptinstall-ymongodb-org二、配置MongoDB副本集MongoDB副本集確保高可用性和數據冗餘,是實現自動擴容的基礎。啟動MongoDB服務:sudosystemctlstartmongodsudosys

MongoDB在Debian上的高可用性如何保障 MongoDB在Debian上的高可用性如何保障 Apr 02, 2025 am 07:21 AM

本文介紹如何在Debian系統上構建高可用性的MongoDB數據庫。我們將探討多種方法,確保數據安全和服務持續運行。關鍵策略:副本集(ReplicaSet):利用副本集實現數據冗餘和自動故障轉移。當主節點出現故障時,副本集會自動選舉新的主節點,保證服務的持續可用性。數據備份與恢復:定期使用mongodump命令進行數據庫備份,並製定有效的恢復策略,以應對數據丟失風險。監控與報警:部署監控工具(如Prometheus、Grafana)實時監控MongoDB的運行狀態,並

使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 使用 Composer 解決推薦系統的困境:andres-montanez/recommendations-bundle 的實踐 Apr 18, 2025 am 11:48 AM

在開發一個電商網站時,我遇到了一個棘手的問題:如何為用戶提供個性化的商品推薦。最初,我嘗試了一些簡單的推薦算法,但效果並不理想,用戶的滿意度也因此受到影響。為了提升推薦系統的精度和效率,我決定採用更專業的解決方案。最終,我通過Composer安裝了andres-montanez/recommendations-bundle,這不僅解決了我的問題,還大大提升了推薦系統的性能。可以通過一下地址學習composer:學習地址

Navicat查看MongoDB數據庫密碼的方法 Navicat查看MongoDB數據庫密碼的方法 Apr 08, 2025 pm 09:39 PM

直接通過 Navicat 查看 MongoDB 密碼是不可能的,因為它以哈希值形式存儲。取回丟失密碼的方法:1. 重置密碼;2. 檢查配置文件(可能包含哈希值);3. 檢查代碼(可能硬編碼密碼)。

CentOS MongoDB備份策略是什麼 CentOS MongoDB備份策略是什麼 Apr 14, 2025 pm 04:51 PM

CentOS系統下MongoDB高效備份策略詳解本文將詳細介紹在CentOS系統上實施MongoDB備份的多種策略,以確保數據安全和業務連續性。我們將涵蓋手動備份、定時備份、自動化腳本備份以及Docker容器環境下的備份方法,並提供備份文件管理的最佳實踐。手動備份:利用mongodump命令進行手動全量備份,例如:mongodump-hlocalhost:27017-u用戶名-p密碼-d數據庫名稱-o/備份目錄此命令會將指定數據庫的數據及元數據導出到指定的備份目錄。

Pi幣重大更新:Pi Bank要來了! Pi幣重大更新:Pi Bank要來了! Mar 03, 2025 pm 06:18 PM

PiNetwork即將推出革命性移動銀行平台PiBank! PiNetwork今日發布重大更新Elmahrosa(Face)PIMISRBank,簡稱PiBank,它將傳統銀行服務與PiNetwork加密貨幣功能完美融合,實現法幣與加密貨幣的原子交換(支持美元、歐元、印尼盾等法幣與PiCoin、USDT、USDC等加密貨幣的互換)。究竟PiBank有何魅力?讓我們一探究竟! PiBank主要功能:一站式管理銀行賬戶和加密貨幣資產。支持實時交易,並採用生物特

MongoDB 與關係數據庫:全面比較 MongoDB 與關係數據庫:全面比較 Apr 08, 2025 pm 06:30 PM

MongoDB與關係型數據庫:深度對比本文將深入探討NoSQL數據庫MongoDB與傳統關係型數據庫(如MySQL和SQLServer)的差異。關係型數據庫採用行和列的表格結構組織數據,而MongoDB則使用靈活的面向文檔模型,更適應現代應用的需求。主要區別數據結構:關係型數據庫使用預定義模式的表格存儲數據,表間關係通過主鍵和外鍵建立;MongoDB使用類似JSON的BSON文檔存儲在集合中,每個文檔結構可獨立變化,實現無模式設計。架構設計:關係型數據庫需要預先定義固定的模式;MongoDB支持

See all articles