<tbody id="xj1oc"></tbody>

    <bdo id="xj1oc"></bdo><bdo id="xj1oc"><optgroup id="xj1oc"><thead id="xj1oc"></thead></optgroup></bdo>

    現在的位置: 首頁 > 數據庫 > 正文

    BSON怎優化來實現目標

    2020年07月02日 數據庫 ⁄ 共 1399字 ⁄ 字號 評論關閉

      BSON是由10gen開發的一個數據格式,目前主要用于MongoDB中,是MongoDB的數據存儲格式。BSON基于JSON格式,選擇JSON進行改造的原因主要是JSON的通用性及JSON的schemaless的特性。下面學步園小編來講解下BSON怎優化來實現目標?

      BSON怎優化來實現目標

      1.更快的遍歷速度

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

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

      2.操作更簡易

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

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

      BSON怎優化來實現目標

      3.增加了額外的數據類型

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

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

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

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

      以上就是關于“BSON怎優化來實現目標”的內容,希望對大家有用。更多資訊請關注學步園。學步園,您學習IT技術的優質平臺!

    抱歉!評論已關閉.

    黄色电影网址