下載吧 - 綠色安全的游戲和軟件下載中心

          軟件下載吧

          當(dāng)前位置:軟件下載吧 > 數(shù)據(jù)庫(kù) > DB2 > 深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          時(shí)間:2024-03-26 14:42作者:下載吧人氣:40

          前言

          本文主要介紹了關(guān)于MongoDB存儲(chǔ)數(shù)據(jù)的相關(guān)內(nèi)容,分享出來(lái)供大家參考學(xué)習(xí),下面來(lái)一起看看詳細(xì)的介紹:

          想要深入了解MongoDB如何存儲(chǔ)數(shù)據(jù)之前,有一個(gè)概念必須清楚,那就是Memeory-Mapped Files。

          Memeory-Mapped Files

          下圖展示了數(shù)據(jù)庫(kù)是如何跟底層系統(tǒng)打交道的。

          • 內(nèi)存映射文件是OS通過(guò)mmap在內(nèi)存中創(chuàng)建一個(gè)數(shù)據(jù)文件,這樣就把文件映射到一個(gè)虛擬內(nèi)存的區(qū)域。
          • 虛擬內(nèi)存對(duì)于進(jìn)程來(lái)說(shuō),是一個(gè)物理內(nèi)存的抽象,尋址空間大小為2^64
          • 操作系統(tǒng)通過(guò)mmap來(lái)把進(jìn)程所需的所有數(shù)據(jù)映射到這個(gè)地址空間(紅線),然后再把當(dāng)前需要處理的數(shù)據(jù)映射到物理內(nèi)存(灰線)
          • 當(dāng)進(jìn)程訪問(wèn)某個(gè)數(shù)據(jù)時(shí),如果數(shù)據(jù)不在虛擬內(nèi)存里,觸發(fā)page fault,然后OS從硬盤里把數(shù)據(jù)加載進(jìn)虛擬內(nèi)存和物理內(nèi)存
          • 如果物理內(nèi)存滿了,觸發(fā)swap-out操作,這時(shí)有些數(shù)據(jù)就需要寫(xiě)回磁盤,如果是純粹的內(nèi)存數(shù)據(jù),寫(xiě)回swap分區(qū),如果不是就寫(xiě)回磁盤。

          深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          MongoDB的存儲(chǔ)模型

          深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          • 有了內(nèi)存映射文件,要訪問(wèn)的數(shù)據(jù)就好像都在內(nèi)存里面,簡(jiǎn)單化了MongoDB訪問(wèn)和修改數(shù)據(jù)的邏輯
          • MongoDB讀寫(xiě)都只是和虛擬內(nèi)存打交道,剩下都交給OS打理
          • 虛擬內(nèi)存大小=所有文件大小+其他一些開(kāi)銷(連接,堆棧)
          • 如果journal開(kāi)啟,虛擬內(nèi)存大小差不多翻番
          • 使用MMF的好處1:不用自己管理內(nèi)存和磁盤調(diào)度2:LRU策略3:重啟過(guò)程中,Cache依然在。
          • 使用MMF的壞處1:RAM使用會(huì)受磁盤碎片的影響,高預(yù)讀也會(huì)影響2:無(wú)法自己優(yōu)化調(diào)度算法,只能使用LRU

          深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          深入了解MongoDB是如何存儲(chǔ)數(shù)據(jù)的

          • 磁盤上的文件是有extent構(gòu)成,分配集合空間的時(shí)候也是以extent為單位進(jìn)行分配的
          • 一個(gè)集合有一個(gè)或者多個(gè)etent
          • ns文件里面命名空間記錄指向那個(gè)集合的第一個(gè)extent

          數(shù)據(jù)文件與空間分配

          當(dāng)創(chuàng)建數(shù)據(jù)庫(kù)時(shí)(其實(shí)MongoDB沒(méi)有顯式創(chuàng)建數(shù)據(jù)庫(kù)的方法,在向數(shù)據(jù)庫(kù)中的集合寫(xiě)入數(shù)據(jù)時(shí)會(huì)自動(dòng)創(chuàng)建該數(shù)據(jù)庫(kù)),MongoDB會(huì)在磁盤上分配一組數(shù)據(jù)文件,所有集合,索引和數(shù)據(jù)庫(kù)的其他元數(shù)據(jù)都保存在這些文件里。數(shù)據(jù)文件被放在啟動(dòng)時(shí)指定的dbpath里,默認(rèn)放入/data/db下面。典型的一個(gè)文件組織結(jié)構(gòu)如下:

          $ cat /data/db
          $ ls -al
          -rw——- 1 root root 16777216 09-18 00:54 local.ns
          -rw——- 1 root root 67108864 09-18 00:54 local.0
          -rw——- 1 root root 2146435072 09-18 00:55 local.1
          -rw——- 1 root root 2146435072 09-18 00:56 local.2
          -rw——- 1 root root 2146435072 09-18 00:57 local.3
          -rw——- 1 root root 2146435072 09-18 00:58 local.4
          -rw——- 1 root root 2146435072 09-18 00:59 local.5
          -rw——- 1 root root 2146435072 09-18 01:01 local.6
          -rw——- 1 root root 2146435072 09-18 01:02 local.7
          -rw——- 1 root root 2146435072 09-18 01:03 local.8
          -rw——- 1 root root 2146435072 09-18 01:04 local.9
          -rw——- 1 root root 2146435072 09-18 01:05 local.10
          -rw——- 1 root root 16777216 09-18 01:06 test.ns
          -rw——- 1 root root 67108864 09-18 01:06 test.0
          -rw——- 1 root root 134217728 09-18 01:06 test.1
          -rw——- 1 root root 268435456 09-18 01:06 test.2
          -rw——- 1 root root 536870912 09-18 01:06 test.3
          -rw——- 1 root root 1073741824 09-18 01:07 test.4
          -rw——- 1 root root 2146435072 09-18 01:07 test.5
          -rw——- 1 root root 2146435072 09-18 01:09 test.6
          -rw——- 1 root root 2146435072 09-18 01:11 test.7
          -rw——- 1 root root 2146435072 09-18 01:13 test.8

          -rwxr-xr-x 1 root root 6 09-18 13:54 mongod.lock
          drwxr-xr-x 2 root root 4096 11-13 18:39 journal
          drwxr-xr-x 2 root root 4096 11-13 19:02 _tmp

          標(biāo)簽深入,了解,MongoDB,如何,存儲(chǔ),數(shù)據(jù)

          相關(guān)下載

          查看所有評(píng)論+

          網(wǎng)友評(píng)論

          網(wǎng)友
          您的評(píng)論需要經(jīng)過(guò)審核才能顯示

          熱門閱覽

          最新排行

          公眾號(hào)

          主站蜘蛛池模板: 黑巨人与欧美精品一区| 国产一区二区三区免费观在线 | 免费精品一区二区三区第35| 亚洲Av无码一区二区二三区| 日韩人妻无码一区二区三区久久99| 午夜DV内射一区区| 国产精品丝袜一区二区三区| 久久国产午夜精品一区二区三区| 精品一区二区三区中文| 亚洲国产成人久久综合一区| 一区二区视频在线观看| 精品日产一区二区三区手机| 中文字幕一区二区人妻| 久久亚洲色一区二区三区| 日亚毛片免费乱码不卡一区| 在线精品自拍亚洲第一区| 国产日韩综合一区二区性色AV| 欧美成人aaa片一区国产精品 | 国产成人精品一区在线| 无码人妻精品一区二区蜜桃AV| 国产伦精品一区二区三区精品| 国产乱码精品一区二区三区麻豆| 久久人妻无码一区二区| 一区一区三区产品乱码| 无码人妻精品一区二区三区久久久| 亚洲一区二区三区精品视频| 国产精品亚洲午夜一区二区三区| 韩国福利影视一区二区三区| 波多野结衣久久一区二区| 成人丝袜激情一区二区| 精品一区狼人国产在线| 人妻无码一区二区三区| 久久精品国产亚洲一区二区三区| 日产一区日产2区| 人妻少妇精品视频一区二区三区 | 国产日韩一区二区三区在线观看 | 丰满岳乱妇一区二区三区| 久久国产精品一区| 99久久精品国产一区二区成人| 偷拍激情视频一区二区三区| 国产精品福利一区|