Mongdb的儲存原理

2021-08-19 18:39:08 字數 774 閱讀 8187

mongdb訪問資料十分快,可以當作快取使用。同時它也極其消耗記憶體。幾乎是有多少記憶體就吃多少記憶體。

同時它也極其消耗記憶體。幾乎是有多少記憶體就吃多少記憶體。為什麼會這樣?這必須深入mongdb的儲存原理。

傳統的資料庫的讀取過程是如果是讀,那就先去記憶體中讀資料,如果沒有,就去磁碟讀,將磁碟資料讀進記憶體,

然後從記憶體讀取。根據程式的區域性性原理,往往只將當前資料附近的一塊資料讀進記憶體,其它資料不讀進記憶體,

只有在需要時才讀取。如果是寫如,會立刻將記憶體資料重新整理進記憶體。但是mongdb與眾不同。它會盡可能一次性

將所有資料讀進記憶體,所以,顯得十分消耗記憶體。這樣的好處時,幾乎完全和記憶體打交道,盡量地避免地向磁碟

讀取資料。如果是向磁碟寫資料,mongdb僅僅是將資料寫進記憶體,至於資料什麼時候從記憶體寫進磁碟,它將這項

工作託管給作業系統的虛擬記憶體管理器去處理。因此,從讀取資料的角度看,由於mongdb僅僅是從記憶體中讀取資料

,在訪問資料上才顯得十分快。同樣也是因為直面記憶體的原因,它可以當作快取使用。可是,有乙個問題:那就是

記憶體的物理材料是半導體材料,在資料的儲存上具有易失性,一旦突然停電或者宕機,儲存在記憶體中的資料就會丟失。

這是無法忍受的。為了克服,journal日誌產生了。它每隔一段時間就會將記憶體中的資料重新整理到journal檔案中。

這個時間間隔是可以調節的。間隔越短,意外損失的資料就越少。

儲存引擎是mongdb儲存的核心:儲存引擎的作用就是將磁碟上的資料對映到記憶體中,或者將記憶體的資料重新整理到磁碟上。

儲存引擎有很多種,提供的鎖粒度是看點。

mongdb的查詢深入

查詢多個條件 pretty是資料格式化 db.庫名.find pretty 案例 db.col.find pretty 類似sql語句where by 菜鳥教程 and title mongodb 教程 or 條件語句 db.庫名.find pretty db.col.find pretty and...

mongdb角色的授權

開啟cmd視窗切換到cd d programs mongodb bin d programs mongodb bin mongo mongodb shell version v3.4.6connecting to mongodb mongodb server version 3.4.3 use ad...

爬蟲資料使用MongDB儲存時自動過濾重複資料

本文 自以下 爬蟲斷了?一招搞定 mongodb 重複資料 需要學習的地方 mongdb資料庫的初步使用 import pymongo client pymongo.mongoclient localhost 27017 鏈結 db client.douban 資料庫 mongo collectio...