BSON如何優(yōu)化來實現(xiàn)目標-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)BSON如何優(yōu)化來實現(xiàn)目標的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

目前成都創(chuàng)新互聯(lián)已為上千多家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)絡(luò)空間、網(wǎng)站運營、企業(yè)網(wǎng)站設(shè)計、荔波網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

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

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ù)總長變大。當然,在MongoDB中,如果數(shù)字從整形增大到長整型,還是會導(dǎo)致數(shù)據(jù)總長變大的。

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

BSON怎優(yōu)化來實現(xiàn)目標

3.增加了額外的數(shù)據(jù)類型

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

當然,在有的時候,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)有了針對多種語言的編碼解碼包。并且都是Apache2license下開源的。并且還在隨著MongoDB進一步地發(fā)展。關(guān)于BSON,你可以在其官方網(wǎng)站bsonspec.org上獲取更多信息。

感謝各位的閱讀!關(guān)于“BSON如何優(yōu)化來實現(xiàn)目標”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

本文名稱:BSON如何優(yōu)化來實現(xiàn)目標-創(chuàng)新互聯(lián)
URL地址:http://muchs.cn/article0/ddohio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站內(nèi)鏈、營銷型網(wǎng)站建設(shè)定制開發(fā)、移動網(wǎng)站建設(shè)品牌網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化