base64太长怎么解决_Json刚明白,怎么又出来个Bson?

JSON与BSON解析:Base64长串问题与MongoDB中的应用
本文介绍了JSON和BSON的区别与联系,BSON作为二进制JSON,主要应用于MongoDB,提供更快的遍历速度、简易操作和更多数据类型。BSON解决了JSON中大数据结构的遍历问题,并减少了Base64转换的计算开销。对于非关系型数据库,如MongoDB的关注和理解,对于IT从业者至关重要。

测试圈的小伙伴们,不管学过自动化测试,还是学过性能测试,甚至是纯手工测试的,估计都对JSON不陌生了。

造词狂热的IT圈,总是不会缺少新鲜事,也不会缺少貌合神离的CP。比如:JSON 和 BSON

8c1f09e8da2079c213641fe730f69baf.png

JSON、BSON傻傻分不清楚?看完这篇文字你就懂了!

太长不读版

l JSON是纯文字的,应用很广泛;

l BSON长得很JSON,二进制JSON,目前只用于MongoDB;

先看JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript,采用完全独立于编程语言的文本格式来存储和表示数据。

一个JSON看起来差不多这样婶儿的:

31268dba0df59587a0f064acd17351db.png

BSON(/ˈbiːsən/,发音同:比森)是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)。

一个BSON看起来这样婶儿的:

d0bd5453fa14f821ffc754e74961996a.png

是不是看起来很像?

JSON自不必多言,下面科普一下BSON:

BSON是由10gen开发的一个数据格式,目前主要用于MongoDB中,是MongoDB的数据存储格式。BSON基于JSON格式,选择JSON进行改造的原因主要是JSON的通用性及JSON的schemaless的特性。

BSON主要会实现以下三点目标

(1)更快的遍历速度

对JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过一个文档进行数据读取,需要对此文档进行扫描才行,需要进行麻烦的数据结构匹配,比如括号的匹配,而BSON对JSON的一大改进就是,它会将JSON的每一个元素的长度存在元素的头部,这样你只需要读取到元素长度就能直接seek到指定的点上进行读取了。

(2)操作更简易

对JSON来说,数据存储是无类型的,比如你要修改基本一个值,从9到10,由于从一个字符变成了两个,所以可能其后面的所有内容都需要往后移一位才可以。而使用BSON,你可以指定这个列为数字列,那么无论数字从9长到10还是100,我们都只是在存储数字的那一位上进行修改,不会导致数据总长变大。当然,在MongoDB中,如果数字从整形增大到长整型,还是会导致数据总长变大的。

(3)增加了额外的数据类型

JSON是一个很方便的数据交换格式,但是其类型比较有限。BSON在其基础上增加了“byte array”数据类型。这使得二进制的存储不再需要先base64转换后再存成JSON。大大减少了计算开销和数据大小。

各位小伙伴,如果工作中用不到MongoDB,那么BSON知道一下就好了。

作为一个业内混迹已久的老司机,哥奉劝大家,除了关系型数据库,还是要关心一下非关系型数据库,比如:MongoDB。

个人见解:这已经不是技不压身的问题了,而是挣钱多少,职业生涯能延长多久的问题。

NoSQL(非关系型数据库)的崛起,不仅仅是为了弥补关系型数据库,更是互联网复杂业务海量增长的必然。

IT圈子,历来是“只闻新人笑,不闻旧人哭。”。技术圈子,一直是“喜新厌旧”。

当时代大潮来的时候,选择随波逐流,还是选择侧立观望,最直接的结果很明显:未来招聘JD上的技能没有掌握,错失机会;未来业务需求技术难题不能快速解决,错失订单。

小伙伴们,共勉!

作  者:Arthur

出  处:微信公众号:自动化软件测试平台

版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值