亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > MongoDB的基本特性與內部構造的講解

MongoDB的基本特性與內部構造的講解

熱門標簽:廣州長安公司怎樣申請400電話 蘋果汽車租賃店地圖標注 濟南電銷機器人加盟公司 老虎洗衣店地圖標注 云南外呼系統 電銷機器人是什么軟件 呼和浩特電銷外呼系統加盟 怎么投訴地圖標注 杭州人工電銷機器人價格

MongoDB是一個介于關系數據庫和非關系數據庫之間的產品,是非關系數據庫當中功能最豐富,最像關系數據庫的。他支持的數據結構非常松散,是類似json的bjson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似于面向對象的查詢語言,幾乎可以實現類似關系數據庫單表查詢的絕大部分功能,而且還支持對數據建立索引。

對于大多數的MongoDB的用戶來說,MongoDB就像是一個大黑盒。但是如果你能夠了解到MongoDB一些內部構造的話,將有利于你更好地理解和使用MongoDB。

BSON

在MongoDB中,文檔是對數據的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各種語言的Driver)都會使用這種抽象,它的表現形式就是我們常說的BSON(Binary JSON)。

BSON 是一個輕量級的二進制數據格式。MongoDB能夠使用BSON,并將BSON作為數據的存儲存放在磁盤中。

當Client端要將寫入文檔,使用查詢等操作時,需要將文檔編碼為BSON格式,然后再發送給Server端。同樣,Server端的返回結果也是編碼為BSON格式再返回給Client端的。

使用BSON格式出于以下3種目的:

效率。BSON是為效率而設計的,它只需要使用很少的空間。即使在最壞的情況下,BSON格式也比JSON格式在最好的情況下存儲效率高。
傳輸性。在某些情況下,BSON會犧牲額外的空間讓數據的傳輸更加方便。比如,字符串的傳輸的前綴會標識字符串的長度,而不是在字符串的末尾打上結束的標記。這樣的傳輸形式有利于MongoDB修改傳輸的數據。
性能。最后,BSON格式的編碼和解碼都是非常快速的。它使用了C風格的數據表現形式,這樣在各種語言中都可以高效地使用。

寫入協議

Client端訪問Server端使用了輕量級的TCP/IP寫入協議。這種協議在MongoDB Wiki中有詳細介紹,它其實是在BSON數據上面做了一層簡單的包裝。比如說,寫入數據的命令中包含了1個20字節的消息頭(由消息的長度和寫入命令標識組成),需要寫入的Collection名稱和需要寫入的數據。

數據文件

在MongoDB的數據文件夾中(默認路徑是/data/db)由構成數據庫的所有文件。每一個數據庫都包含一個.ns文件和一些數據文件,其中數據文件會隨著數據量的增加而變多。所以如果有一個數據庫名字叫做foo,那么構成foo這個數據庫的文件就會由foo.ns,foo.0,foo.1,foo.2等等組成。

數據文件每新增一次,大小都會是上一個數據文件的2倍,每個數據文件最大2G。這樣的設計有利于防止數據量較小的數據庫浪費過多的空間,同時又能保證數據量較大的數據庫有相應的空間使用。

MongoDB會使用預分配方式來保證寫入性能的穩定(這種方式可以使用–noprealloc關閉)。預分配在后臺進行,并且每個預分配的文件都用0進行填充。這會讓MongoDB始終保持額外的空間和空余的數據文件,從而避免了數據增長過快而帶來的分配磁盤空間引起的阻塞。

名字空間和盤區

每一個數據庫都由多個名字空間組成,每一個名字空間存儲了相應類型的數據。數據庫中的每一個Collection都有各自對應的名字空間,索引文件同樣也有名字空間。所有名字空間的元數據都存儲在.ns文件中。

名字空間中的數據在磁盤中分為多個區間,這個叫做盤區。在下圖中,foo這個數據庫包含3個數據文件,第三個數據文件屬于空的預分配文件。頭兩個數據文件被分為了相應的盤區對應不同的名字空間。

上圖顯示了名字空間和盤區的相關特點。每一個名字空間可以包含多個不同的盤區,這些盤區并不是連續的。與數據文件的增長相同,每一個名字空間對應的盤區大小的也是隨著分配的次數不斷增長的。這樣做的目的是為了平衡名字空間浪費的空間與保持某一個名字空間中數據的連續性。上圖中還有一個需要注意的名字空間:$freelist,這個名字空間用于記錄不再使用的盤區(被刪除的Collection或索引)。每當名字空間需要分配新的盤區的時候,都會先查看$freelist是否有大小合適的盤區可以使用。

內存映射存儲引擎

MongoDB目前支持的存儲引擎為內存映射引擎。當MongoDB啟動的時候,會將所有的數據文件映射到內存中,然后操作系統會托管所有的磁盤操作。這種存儲引擎有以下幾種特點:

  • MongoDB中關于內存管理的代碼非常精簡,畢竟相關的工作已經有操作系統進行托管。
  • MongoDB服務器使用的虛擬內存將非常巨大,并將超過整個數據文件的大小。不用擔心,操作系統會去處理這一切。要注意的是,MongoDB自己是不管理內存的,無法指定內存大小,完全交給操作系統來管理,因此有時候是不可控的,在生產環境使用必須在OS層面監控內存使用情況。
  • MongoDB無法控制數據寫入磁盤的順序,這樣將導致MongoDB無法實現writeahead日志的特性。所以,如果MongoDB希望提供一種durability的特性,需要實現另外一種存儲引擎。
  • 32位系統的MongoDB服務器每一個Mongod實例只能使用2G的數據文件。這是由于地址指針只能支持32位。

特性

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

  • 面向集合存儲,易存儲對象類型的數據。
  • 模式自由。
  • 支持動態查詢。
  • 支持完全索引,包含內部對象。
  • 支持查詢。
  • 支持復制和故障恢復。
  • 使用高效的二進制數據存儲,包括大型對象(如視頻等)。
  • 自動處理碎片,以支持云計算層次的擴展性
  • 支持RUBY,PYTHON,JAVA,C++,PHP等多種語言。
  • 文件存儲格式為BSON(一種JSON的擴展)
  • 可通過網絡訪問

所謂“面向集合”(Collenction-Orented),意思是數據被分組存儲在數據集中,被稱為一個集合(Collenction)。每個 集合在數據庫中都有一個唯一的標識名,并且可以包含無限數目的文檔。集合的概念類似關系型數據庫(RDBMS)里的表(table),不同的是它不需要定 義任何模式(schema)。

模式自由(schema-free),意味著對于存儲在mongodb數據庫中的文件,我們不需要知道它的任何結構定義。如果需要的話,你完全可以把不同結構的文件存儲在同一個數據庫里。

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

其它

在《MongoDB The Definitive Guide》中介紹的MongoDB內部構造只有這么多,如果真要把它說清楚,可能需要另外一本書來專門講述了。比如內部的JS解析,查詢的優化,索引的建立等等。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • 分析MongoDB和MySQL各自的關鍵特性、差別和優勢
  • golang1.16新特性速覽(推薦)
  • go特性之數組與切片的問題
  • django 中QuerySet特性功能詳解
  • Django 2.0版本的新特性搶先看!
  • golang中defer的關鍵特性示例詳解
  • Go語言區別于其他語言的特性

標簽:雞西 無錫 興安盟 泰安 遼陽 玉林 廈門 自貢

巨人網絡通訊聲明:本文標題《MongoDB的基本特性與內部構造的講解》,本文關鍵詞  MongoDB,的,基本,特性,與,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MongoDB的基本特性與內部構造的講解》相關的同類信息!
  • 本頁收集關于MongoDB的基本特性與內部構造的講解的相關信息資訊供網民參考!
  • 推薦文章
    欧美爱爱网| 夜夜操天天爽| 久久久久久久免费视频| 亚洲精品影院一区二区| 亚洲 国产精品 日韩| 国产高清在线精品一区a| 成人免费高清视频| 久久国产影院| 成人高清视频免费观看| 日日爽天天| 亚欧成人乱码一区二区| 国产91精品一区| 国产福利免费视频| 亚洲 欧美 成人日韩| 一 级 黄 中国色 片| 精品国产一区二区三区久| 九九久久99| 欧美a免费| 日韩av成人| 二级片在线观看| 91麻豆精品国产高清在线| 免费国产一级特黄aa大片在线| 香蕉视频久久| 麻豆系列 在线视频| 国产精品自拍在线观看| 中文字幕一区二区三区精彩视频| 天天做人人爱夜夜爽2020毛片| 国产一区二区精品| 九九热国产视频| 午夜欧美成人香蕉剧场| 国产福利免费观看| 一级毛片视频免费| 欧美激情在线精品video| 黄色短视频网站| 国产麻豆精品免费密入口| 亚欧成人乱码一区二区| 日韩中文字幕在线播放| 亚洲天堂免费| 欧美激情一区二区三区视频 | 尤物视频网站在线| 成人影视在线观看| 欧美激情一区二区三区视频 | 欧美激情一区二区三区视频 | 日韩中文字幕在线观看视频| 日韩一级黄色| 精品国产一区二区三区精东影业 | 99色播| 国产网站免费视频| 亚洲 男人 天堂| 欧美另类videosbestsex高清 | 免费毛片播放| 91麻豆精品国产片在线观看 | 色综合久久手机在线| 天天做日日爱夜夜爽| 91麻豆爱豆果冻天美星空| 精品视频在线观看一区二区| 99久久网站| 韩国三级香港三级日本三级la | 国产麻豆精品hdvideoss| 日本免费乱人伦在线观看| 成人免费一级纶理片| 成人高清视频在线观看| 国产原创视频在线| 国产综合91天堂亚洲国产| 欧美电影免费看大全| 国产一级强片在线观看| 沈樵在线观看福利| 韩国三级香港三级日本三级| 欧美一区二区三区在线观看| 日本免费乱人伦在线观看| 999精品在线| 国产成人女人在线视频观看| 韩国毛片免费| 香蕉视频亚洲一级| 亚欧乱色一区二区三区| 欧美1区| 四虎影视久久| 九九久久99综合一区二区| 欧美激情一区二区三区视频高清 | 国产原创视频在线| 国产一区二区福利久久| 日韩一级黄色| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 午夜精品国产自在现线拍| 美女免费黄网站| 青青久久精品| 91麻豆国产福利精品| 精品久久久久久中文| 一级毛片视频免费| 一级女性全黄久久生活片| 欧美激情影院| 成人a级高清视频在线观看| 国产麻豆精品| 九九免费高清在线观看视频 | 精品久久久久久中文| 国产91精品系列在线观看| 99色播| 久草免费资源| 国产视频一区在线| 成人在免费观看视频国产| 亚洲女人国产香蕉久久精品| 91麻豆tv| 午夜久久网| 999久久狠狠免费精品| 91麻豆tv| 色综合久久天天综合| 国产成人精品综合在线| 91麻豆精品国产片在线观看 | 日韩综合| 999久久狠狠免费精品| 日韩中文字幕在线播放| 999久久狠狠免费精品| 在线观看成人网 | 亚欧乱色一区二区三区| 国产91丝袜高跟系列| 欧美另类videosbestsex久久| 精品国产亚一区二区三区| 99久久视频| 国产综合91天堂亚洲国产| 午夜激情视频在线观看| 午夜久久网| 日韩在线观看视频黄| 国产极品精频在线观看| 九九九国产| 久久久成人网| 精品久久久久久中文| 午夜在线亚洲| 国产亚洲精品成人a在线| 久久国产影院| 91麻豆精品国产综合久久久| 欧美电影免费| 成人免费一级纶理片| 国产国语在线播放视频| 99久久精品国产高清一区二区| 久久99欧美| 久久国产精品自线拍免费| 欧美激情一区二区三区视频高清 | 日本特黄一级| 国产一区二区精品尤物| 精品国产亚洲人成在线| 高清一级片| 四虎影视库| 日日日夜夜操| 久久久成人网| 国产美女在线一区二区三区| 国产伦理精品| 日本免费看视频| 欧美另类videosbestsex高清 | 精品视频在线看 | 国产成+人+综合+亚洲不卡| 韩国三级一区| 欧美α片无限看在线观看免费| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 四虎影视久久| 日韩专区第一页| 一级毛片视频播放| 麻豆午夜视频| 国产91精品一区| 久久成人性色生活片| 99色视频在线观看| 国产高清视频免费观看| 国产麻豆精品视频| 亚洲第一色在线| 韩国三级视频在线观看| 久久国产精品自由自在| 一级女性全黄生活片免费| 日韩在线观看视频黄| 精品视频一区二区三区免费| 国产一区二区精品尤物| 欧美日本免费| 成人影院一区二区三区| 国产一级生活片| 国产成人精品综合| 青青久久精品| 99久久网站| 一级女性全黄久久生活片| 欧美日本免费| 国产伦久视频免费观看视频| 毛片高清| 国产不卡高清在线观看视频 | 国产视频一区二区在线播放| 欧美国产日韩一区二区三区| 欧美1区| 二级特黄绝大片免费视频大片| 久久成人性色生活片| 精品国产一区二区三区久| 国产不卡高清在线观看视频 | 国产不卡在线看| 亚洲第一页色| 日本特黄特黄aaaaa大片| 成人在免费观看视频国产| 你懂的国产精品| 色综合久久天天综合绕观看| 精品毛片视频| 一级毛片视频播放| 国产欧美精品午夜在线播放| 日韩中文字幕一区二区不卡| 亚飞与亚基在线观看| 国产a视频精品免费观看| 国产成人欧美一区二区三区的|