测试圈的小伙伴们,不管学过自动化测试,还是学过性能测试,甚至是纯手工测试的,估计都对JSON不陌生了。
造词狂热的IT圈,总是不会缺少新鲜事,也不会缺少貌合神离的CP。比如:JSON 和 BSON
JSON、BSON傻傻分不清楚?看完这篇文字你就懂了!
太长不读版
l JSON是纯文字的,应用很广泛;
l BSON长得很JSON,二进制JSON,目前只用于MongoDB;
先看JSON
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于 ECMAScript,采用完全独立于编程语言的文本格式来存储和表示数据。
一个JSON看起来差不多这样婶儿的:
BSON(/ˈbiːsən/,发音同:比森)是一种计算机数据交换格式,主要被用作MongoDB数据库中的数据存储和网络传输格式。它是一种二进制表示形式,能用来表示简单数据结构、关联数组(MongoDB中称为“对象”或“文档”)以及MongoDB中的各种数据类型。BSON之名缘于JSON,含义为Binary JSON(二进制JSON)。
一个BSON看起来这样婶儿的:
是不是看起来很像?
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
出 处:微信公众号:自动化软件测试平台
版权说明:欢迎转载,但必须注明出处,并在文章页面明显位置给出文章链接