溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MONGODB磁盤與內(nèi)存的數(shù)據(jù)格式一致嗎

發(fā)布時間:2021-07-16 01:56:55 來源:億速云 閱讀:117 作者:chen 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“MONGODB磁盤與內(nèi)存的數(shù)據(jù)格式一致嗎”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MONGODB磁盤與內(nèi)存的數(shù)據(jù)格式一致嗎”吧!

最近MONGODB 系統(tǒng)中的數(shù)據(jù)量逐漸變大,聯(lián)系了開發(fā)準備開始進行數(shù)據(jù)的archive 和  cleanup 事宜。其中運維的同學問我,你存儲的數(shù)據(jù)size 和實際的數(shù)據(jù) size 是不一樣的,我回答那是mongodb 自帶的數(shù)據(jù)壓縮功能。

但后續(xù)的問題我模糊了,例如磁盤和內(nèi)存的數(shù)據(jù)是否完全一致,壓縮的比率是多少,等等。人無完人,我也不是DB 百科全書。不過好在還不是中年油膩大叔,模糊了那就learning 去。

那就直奔主題wiredTiger , wiredTiger 作為MONGODB 的主力存儲引擎(3.0以后,當然還有PERCONA 但目前不主流)。

首先我們看看wiredTiger 到底是怎么存儲數(shù)據(jù)的,本身wiredTiger 存儲數(shù)據(jù)的方式有兩種, 行模式 和 列模式。而這兩種方式都是使用 B+ TREE的方式來進行數(shù)據(jù)的存儲的。

在行模式中,KEY 與 Values 都是 strings 可變的,而如果采用列的方式,key是通過 64BIT的方式記錄 Values 和行模式一樣。所以行與列的模式中不同的是 key 的存儲方式。

這兩種存儲方式各有優(yōu)點和缺點

行的方式提取整行數(shù)據(jù)快,但需要的存儲空間大,并且如果某些方面設計不好,消耗的I/O 無論從性能還是尺寸上都比較大。

列式存儲則適合提取所需的字段(意思就是最好別一次提取較多的字段,否則沒優(yōu)勢),并且存儲的值被限制在 8-BITS 這限制值的大小。相關的mongodb的并發(fā)控制主要在 transactions , snapshots 和  cache幾個位置

MONGODB磁盤與內(nèi)存的數(shù)據(jù)格式一致嗎

MONGODB中 基本行采用了行模式的方式進行數(shù)據(jù)的存儲,而數(shù)據(jù)存儲中就會牽扯到 mongodb  中的數(shù)據(jù)壓縮

目前行的存儲方面支持四種壓縮方式

1 鍵值前綴壓縮

2 字段壓縮

3 霍夫曼數(shù)據(jù)編碼壓縮

4 塊壓縮

具體四種壓縮方式,默認采用的是鍵值前綴壓縮的方式。這主要是根據(jù)CPU 磁盤的消耗,壓縮,以及算法的復雜度等因素考慮。

首先要確認的是,磁盤存儲的數(shù)據(jù)與在內(nèi)存中的數(shù)據(jù)一定是不一樣的,要不怎么還有壓縮一說。

1

文件系統(tǒng)緩存中的數(shù)據(jù)與磁盤上的格式相同,包括對數(shù)據(jù)文件進行任何壓縮,MONGODB使用文件系統(tǒng)緩存來減少磁盤I/O。

2

WiredTiger內(nèi)部緩存中加載的索引具有與磁盤格式不同的數(shù)據(jù)表示形式,但是仍然可以利用索引前綴壓縮來減少RAM的使用。索引前綴壓縮從索引字段中去除常見前綴。

3

WiredTiger內(nèi)部緩存中的收集數(shù)據(jù)是未壓縮的,并且使用與磁盤格式不同的表示形式。

關于壓縮比率的問題,其實沒有一個具體的固定的比率這和存儲的數(shù)據(jù)是有關的,下面有一個圖,這是 percona 的一個 PPT 中曾經(jīng)提到的壓縮的比率還是比較高的

到此,相信大家對“MONGODB磁盤與內(nèi)存的數(shù)據(jù)格式一致嗎”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI