




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、MongoDB 介紹MongoDB 是一個基于分布式文件存儲的數據庫,由 C+語言編寫。旨在為 WEB 應用提供可擴展的高性能數據存儲解決方案。MongoDB 是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當能最豐富,最像關系數據庫的。它支持的數據結構非常松散,是類似 json 的 bson 格式,因此可以存儲比較復雜的數據類型。Mongo 最大的特點是它支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。MongoDB 適用場景MongoDB 的主要目標是在鍵/值存儲方式(提供了高性能和高度伸縮
2、性)和傳統的 RDBMS 系統(具有豐富的功能)之間架起一座橋梁,它集兩者的優勢于一身。Mongo 主要適用于以下場景: 網站數據:Mongo 非常適合實時的插入,更新與查詢,并具備網站實時數據存儲所需的復制及高度伸縮性。 緩存:由于性能很高,Mongo 也適合作為信息基礎設施的緩存層。在系統重啟之后, 由 Mongo 搭建的持久化緩存層可以避免下層的數據源過載。 大尺寸、低價值的數據:使用傳統的關系型數據庫存儲一些數據時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統的文件進行存儲。 高伸縮性的場景:Mongo 非常適合由數十或數百臺服務器組成的數據庫,Mongo 的路線圖中已經包含對
3、 MapReduce 引擎的內置支持。 用于對象及 JSON 數據的存儲:Mongo 的 BSON 數據格式非常適合文檔化格式的存儲及查詢。MongoDB 的使用也會有一些限制,它不適合于以下幾個地方: 高度事務性的系統:例如,銀行或會計系統。傳統的關系型數據庫目前還是更適用于需要大量原子性復雜事務的應用程序。 傳統的商業智能應用:針對特定問題的 BI 數據庫會產生高度優化的查詢方式。對于此類應用,數據倉庫可能是更合適的選擇。 需要 SQL 的問題。MongoDB 原理1. MongoDB 復(副)本集與分片:每個復(副)本集中存儲的數據是相同的,相當于主備方式的數據冗余,目的是為了容災。分片
4、是為了數據的拓展,按照片鍵進行結點劃分,數據根據片鍵存儲到對應的服務器上。2. MongoDB 部署方案MongoDB 的集群部署方案中有三類角色:實際數據存儲結點(Shared Sever)、配置文件存儲結點(Config Sever)和路由接入結點(Route Server)。客戶端直接與路由結點相連,從配置結點上查詢數據,根據查詢結果到實際的存儲結點上查詢和存儲數據。MongoDB 讀寫數據的流程如圖:寫入數據時,先由客戶端訪問路由結點,向配置結點獲取相關信息后,將數據寫入存儲結點。讀取數據時,由客戶端訪問路由結點,向配置結點獲取相關信息后,對存儲結點進行訪問, 獲取到相應數據,再經由路
5、由結點將數據返回至客戶端。對于復本集,又有主和從兩種角色,寫數據和讀數據也是不同,寫數據的過程是只寫到主結點中,由主結點以異步的方式同步到從結點中。而讀數據則只要從任一結點中讀取,具體到哪個結點讀取是可以指定的。對于 MongoDB 的分片,假設我們以某一索引鍵(ID)為片鍵,ID 的區間0,50),劃分成 5 個chunk,分別存儲到 3 個片服務器中,可以進行如下分片:當數據量很大,需要增加片服務器時,只需移動 chunk 來均分數據即可。配置結點:存儲配置文件的服務器其實存儲的是片鍵與 chunk 以及 chunk 與 server 的映射關系。路由結點:路由角色的結點在分片的情況下起到
6、負載均衡的作用。MongoDB 和 MySQL 的區別1. MySQL 是關系型數據庫 優點:在不同的引擎上有不同的存儲方式。查詢語句是傳統的 SQL 語句,擁有成熟的體系,成熟度很高。 缺點:在處理海量數據時,效率會顯著變慢。2. MongoDB 介于關系數據庫和非關系數據庫之間,面向集合的、模式自由的文檔型數據庫。多個鍵值對有序地放置在一起即是文檔,文檔是 MongoDB 中數據的基本單元,類似關系數據庫的行。MongoDB 中的查詢語法是獨特的,有點類似Javascript 面向對象的查詢語言。存儲方式:虛擬內存+持久化。查詢語句:獨特的 MongoDB 的查詢方式。架構特點:可以通過副
7、本集,以及分片來實現高可用。數據處理:數據存儲在硬盤上,需要經常讀取的數據(熱數據)會被加載到物理內存中,從而達到高速讀寫的效果。成熟度與廣泛度:新興數據庫,成熟度較低,Nosql 數據庫中最為接近關系型數據庫,比較完善的數據庫之一,適用人群不斷增長。 優點:讀寫速度快。在適量級的內存的 MongoDB 的速度是十分快速的,通過將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快速。高擴展性。存儲的數據格式是類似 json 的 bson 格式。 缺點:不支持事務。3. MongoDB 與 MySQL 命令對比傳統的關系數據庫一般由數據庫(database)、表(table)、記錄(record
8、)三個層次概念組成,MongoDB 是由數據庫(database)、集合(collection)、文檔對象(document)三個層次組成。MongoDB 對于關系型數據庫里的表,但是集合中不包括列、行和關系概念,這體現了模式自由的特點。MongoDB 備份方式1. 文件快照備份文件快照備份基于操作系統,通過 Linux 的LVM 特性對MongoDB 數據文件所在的設備進行備份。正是由于這種備份方式使用操作系統級別的工具,故而兼備了高可靠性和高效率。不過這樣也導致了宿主環境必須要給予支持。文件快照備份的特點: 優點:1) 支持時間點2) 高可靠性、高效率3) 增量備份 缺點:1) 需要操作系
9、統支持2) 需要開啟日志功能,否則無法保證數據的有效性和一致性 其他:1) 可以獲取分片集群的一致快照,需要關閉集群均衡器并在大致相同的時刻從集群的每個分片和配置服務器上抓取快照。2) 沒有開啟日志功能時,備份前需要完全完成寫操作,備份過程中將停止任何寫操作(MMAPv1)。3) 開啟日志功能后,在快照時 MMAPv1 無需停止寫操作達到一致狀態,Wired Tiger 通過最后的檢查點達到一致狀態(檢查點為每 2G 數據或每分鐘一次)。4) 文件快照創建的是整個磁盤的鏡像,所以把數據文件、配置、日志放在一個邏輯磁盤上會節約空間。2. mongodump 備份/mongorestore 恢復執行 mongodump 命令讀取 MongoDB 數據庫,可以生成一個備份文件,該備份文件格式為BJSON,執行 mongorestore 命令可以通過讀取該備份文件將MongoDB 數據庫恢復。使用這種方式進行備份時,對于小型的 MongoDB 集群而言,占用空間更少,也更高效;但是對于大型的 MongoDB 集群,效率則不是很高。在備份的過程中,可以繼續修改數據,會記錄
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件測試類型題目及答案
- 8 1 直線和圓-高考數學真題分類 十年高考
- 《經濟與社會》選擇題100題(原卷版)
- 2023-2024學年河南省南陽市六校高二下學期期末考試數學試題(解析版)
- 2025年秋三年級上冊語文同步教案 語文園地
- 碳中和行業研究報告
- 自貢統計年鑒-2009-環境保護主要統計指標解釋
- 佳能公司人員管理制度
- 供水搶修應急管理制度
- 供水設備檢修管理制度
- 小學生勞動教育評價細則
- 民法典案例解讀PPT
- 安全生產知識應知應會
- 質 量 管 理 體 系 認 證審核報告(模板)
- 腫瘤科新護士入科培訓和護理常規
- 第4章 頜位(雙語)
- 二手車鑒定評估報告書最終
- 電影場記表(雙機位)
- 塔吊負荷試驗方案
- 電子商務專業“產教融合、五雙并行”人才培養 模式的實踐研究課題論文開題結題中期研究報告(經驗交流)
- 購買社區基本公共養老、青少年活動服務實施方案
評論
0/150
提交評論