亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 6090 | 回復(fù): 1
打印 上一主題 下一主題

[MongoDB] BSON特性探討及基于其特性的MongoDB優(yōu)化 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2012-02-22 14:55 |只看該作者 |倒序瀏覽
BSON特性探討及基于其特性的MongoDB優(yōu)化





BSON是由10gen開發(fā)的一個數(shù)據(jù)格式,目前主要用于MongoDB中,是MongoDB的數(shù)據(jù)存儲格式。BSON基于JSON格式,選擇JSON進行改造的原因主要是JSON的通用性及JSON的schemaless的特性。



BSON主要會實現(xiàn)以下三點目標(biāo):

1.更快的遍歷速度
對JSON格式來說,太大的JSON結(jié)構(gòu)會導(dǎo)致數(shù)據(jù)遍歷非常慢。在JSON中,要跳過一個文檔進行數(shù)據(jù)讀取,需要對此文檔進行掃描才行,需要進行麻煩的數(shù)據(jù)結(jié)構(gòu)匹配,比如括號的匹配,而BSON對JSON的一大改進就是,它會將JSON的每一個元素的長度存在元素的頭部,這樣你只需要讀取到元素長度就能直接seek到指定的點上進行讀取了。

MongoDB優(yōu)化:對于MongoDB來說,由于采用了MMAP來做內(nèi)存與數(shù)據(jù)文件的映射,在更新或者獲取Document的某一個字段時,如果需要先讀取其前面的所有字段,會導(dǎo)致物理內(nèi)存由于讀操作被加載到不必要的字段上,導(dǎo)致資源的不合理分配。而采用BSON只需要讀到相應(yīng)的位置然后跨過無用內(nèi)容讀取需要內(nèi)容即可。

2.操作更簡易
對JSON來說,數(shù)據(jù)存儲是無類型的,比如你要修改基本一個值,從9到10,由于從一個字符變成了兩個,所以可能其后面的所有內(nèi)容都需要往后移一位才可以。而使用BSON,你可以指定這個列為數(shù)字列,那么無論數(shù)字從9長到10還是100,我們都只是在存儲數(shù)字的那一位上進行修改,不會導(dǎo)致數(shù)據(jù)總長變大。當(dāng)然,在MongoDB中,如果數(shù)字從整形增大到長整型,還是會導(dǎo)致數(shù)據(jù)總長變大的。

MongoDB優(yōu)化:所以使用MongoDB的一個技巧是將長度可能變化的字段盡量命名靠后(MongoDB在update操作后會將字段按key值按字母順序重排,所以靠后的意思是按a-z的順序取名)。這樣在更新的時候如果導(dǎo)致數(shù)字變長,不需要移動大量數(shù)據(jù)。一個典型的例子是如果用二進制類型存儲文件時,如果文件名或者文件描述可能會變長,那么盡量將這個字段取名靠后是一個明智的選擇,否則在文件名或文件描述字段變化時,會導(dǎo)致移動很長的二進制數(shù)據(jù),造成不必要的浪費。

3.增加了額外的數(shù)據(jù)類型
JSON是一個很方便的數(shù)據(jù)交換格式,但是其類型比較有限。BSON在其基礎(chǔ)上增加了“byte array”數(shù)據(jù)類型。這使得二進制的存儲不再需要先base64轉(zhuǎn)換后再存成JSON。大大減少了計算開銷和數(shù)據(jù)大小。

當(dāng)然,在有的時候,BSON相對JSON來說也并沒有空間上的優(yōu)勢,比如對{“field”:7},在JSON的存儲上7只使用了一個字節(jié),而如果用BSON,那就是至少4個字節(jié)(32位)

MongoDB優(yōu)化:在MongoDB中,如果你的字段是數(shù)字型,并且涉及到數(shù)據(jù)加減操作的,那么建議存在int型,但如果是一個固定不變的數(shù)字,并且在四位以下的話,可以考慮存成字符串類型。這樣會節(jié)省空間。

目前在10gen的努力下,BSON已經(jīng)有了針對多種語言的編碼解碼包。并且都是Apache 2 license下開源的。并且還在隨著MongoDB進一步地發(fā)展。關(guān)于BSON,你可以在其官方網(wǎng)站 bsonspec.org 上獲取更多信息。

來源:blog.mongodb.org


論壇徽章:
0
2 [報告]
發(fā)表于 2012-02-24 17:36 |只看該作者
謝謝分享
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP