中文字幕在线观看,亚洲а∨天堂久久精品9966,亚洲成a人片在线观看你懂的,亚洲av成人片无码网站,亚洲国产精品无码久久久五月天

MongoSpy, MongoWatch及MongoDB數(shù)據(jù)壓縮

2019-03-08    來(lái)源:多智時(shí)代

容器云強(qiáng)勢(shì)上線!快速搭建集群,上萬(wàn)Linux鏡像隨意使用

本文源自openmymind博客的一篇文章,文中作者介紹了兩個(gè)自己用Node.JS寫的MongoDB監(jiān)控小工具,MongoSpy和MongoWatch,然后提出了在對(duì)MongoDB進(jìn)行文本存儲(chǔ)時(shí)使用壓縮以節(jié)約空間的設(shè)想。

這兩上小工具功能并不怎么強(qiáng)大,實(shí)現(xiàn)也簡(jiǎn)單,如果你會(huì)用任何一種語(yǔ)言操作MongoDB的話,相信你都能寫一個(gè)類似的東西。

MongoSpy:一個(gè)對(duì)MongoDB慢查詢進(jìn)行監(jiān)控的小工具,使用node.js從MongoDB的system.profile這個(gè)Collection中不停讀出最新的數(shù)據(jù)并顯示在Web頁(yè)面,這樣你就能實(shí)時(shí)的看到MongoDB的慢查詢了。當(dāng)然,前提是你得配置好對(duì)應(yīng)DB的profile級(jí)別。具體可見:《Mongo Database Profiler》

MongoWatch:這個(gè)腳本是定時(shí)獲取MongoDB的狀態(tài)信息,并將其按時(shí)間順序排列顯示在Web頁(yè)面上,讓你可以直接看到隨著時(shí)間推移你MongoDB的各項(xiàng)狀態(tài)指標(biāo)的變化。

上面說(shuō)完兩個(gè)小工具,有興趣的話你可以自己去看一看具體的用法,下面部分提出了使用壓縮方法對(duì)MongoDB文本數(shù)據(jù)進(jìn)行壓縮的想法。

MongoDB是一個(gè)文檔型數(shù)據(jù)庫(kù),其數(shù)據(jù)使用BSON結(jié)構(gòu)存儲(chǔ),BSON支持文本型數(shù)據(jù)存儲(chǔ)的同時(shí)也支持二進(jìn)制數(shù)據(jù)存儲(chǔ)。試想如果BSON結(jié)構(gòu)會(huì)將字符串做某種壓縮然后以二進(jìn)制的形式存儲(chǔ),那將會(huì)節(jié)約很大的空間。

但是這有一個(gè)前提,那就是你不會(huì)對(duì)壓縮過的字段建立索引做查詢。實(shí)際上這一點(diǎn)在很多情況下是可以保證的,比如我們使用MongoDB存儲(chǔ)博客的博文信息,是不會(huì)對(duì)博文做查詢操作的。

但是很遺憾,MongoDB并沒有提供這樣的功能,雖然這個(gè)功能已經(jīng)早就有人提出(SERVER-164)。

既然MongoDB不支持,那么我們可以考慮在客戶端實(shí)現(xiàn),目前壓縮算法數(shù)不勝數(shù),這主要取決于你使用語(yǔ)言的支持。比如Google’s Snappy或者是MessagePack等等。實(shí)際上這一想法并不新鮮,在一些不提供二級(jí)索引的存儲(chǔ),比如Memcached上,我們?cè)缇褪褂昧祟愃频淖龇▉?lái)節(jié)約內(nèi)存。

比如你可以把一些純文本的數(shù)據(jù)壓縮后存成二進(jìn)制,再保存一個(gè)壓縮類型的字段做標(biāo)識(shí),如下:

{account: 1231232, server: 'linode1', latest: 'Sep 23 2011', data: [ {type: 1, data: BinData(0,"iad42ZXJzaW9upTEuOC4wpnVwdGltZc4Ae3z")}, {type: 1, data: BinData(0,"iad42ZXJzaW9upTEuOC4wpnVwdGltZc4Ae3z")}, {type: 1, data: BinData(0,"iad42ZXJzaW9upTEuOC4wpnVwdGltZc4Ae3z")}, {type: 0, data: {virtual: 1889, mapped: 852, uptime: 7920098, hit: 99, date: 'Sep 23 2011' }} ]}

上面數(shù)據(jù)前三條用了類型為1的壓縮算法對(duì)數(shù)據(jù)進(jìn)行壓縮并存在二進(jìn)制數(shù)據(jù),第四條沒有壓縮。具體情況可以通過壓縮算法在不同長(zhǎng)度數(shù)據(jù)下的壓縮率來(lái)調(diào)整,比如只有兩個(gè)字符的value值,可能你就不需要壓縮了,這時(shí)候你設(shè)置type為0表示未做壓縮即可。

標(biāo)簽: [db:TAGG]

版權(quán)申明:本站文章部分自網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系:west999com@outlook.com
特別注意:本站所有轉(zhuǎn)載文章言論不代表本站觀點(diǎn)!
本站所提供的圖片等素材,版權(quán)歸原作者所有,如需使用,請(qǐng)與原作者聯(lián)系。

上一篇:云計(jì)算基礎(chǔ)設(shè)施產(chǎn)業(yè)布局演進(jìn)和趨勢(shì)分析

下一篇:深化本土戰(zhàn)略 VMware中國(guó)研發(fā)中心擴(kuò)張