BSON 如何优化以实现目标

分类:编程技术 时间:2024-02-20 15:38 浏览:0 评论:0
0
本文与您分享如何优化 BSON 来实现您的目标。小编觉得还是比较实用的,所以分享给大家,作为参考。下面就跟随小编来看看吧。

BSON是10gen开发的一种数据格式。目前主要用在MongoDB中,是MongoDB的数据存储格式。 BSON 基于 JSON 格式。选择JSON进行转换的主要原因是JSON的通用性和JSON的无模式特性。

【1.更快的遍历速度

对于JSON格式来说,太大的JSON结构会导致数据遍历非常慢。在JSON中,要跳过某个文档进行数据读取,需要扫描该文档,这需要麻烦的数据结构匹配,例如括号匹配。 BSON对JSON的一个重大改进就是它将每个元素的长度存储在元素的头部中,这样你只需要读取元素的长度就可以直接查找到指定点用于阅读。

MongoDB优化:对于MongoDB来说,由于MMAP是用来映射内存和数据文件的,所以在更新或获取Document的某个字段时,如果需要先读取之前的所有字段,这会造成物理上的问题。内存由于读操作而被加载到不必要的字段中,导致资源分配不合理。使用BSON,只需要读取对应的位置,然后越过无用的内容读取需要的内容。

2.操作更简单

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

MongoDB 优化:所以使用 MongoDB 时的一个技巧是尽可能晚地命名长度可能发生变化的字段(MongoDB 会在更新操作后按键值按字母顺序重新排列字段,因此后者意味着它们按 a-z 的顺序命名)。这样,如果更新过程中数字变长,就不需要移动大量数据。一个典型的例子是,如果你使用二进制类型来存储文件,如果文件名或文件描述可能会变得更长,那么稍后命名这个字段是一个明智的选择。否则,当文件名或文件描述字段发生变化时,这将导致移动很长的二进制数据,造成不必要的浪费。

如何优化BSON以实现目标

3.添加了额外的数据类型

JSON是一种非常方便的数据交换格式,但其类型相对有限。 BSON 添加“bytearray”数据 type 在此基础上。这样就无需在将二进制数据保存为 JSON 之前将其转换为 Base64。计算开销和数据大小大大减少。

当然,有时候,BSON 相对于 JSON 并不具有空间优势。例如,对于 {"field":7},7 在 JSON 存储中仅使用一个字节。而如果使用BSON的话,至少是4个字节(32位)

MongoDB优化:在MongoDB中,如果你的字段是数值型,并且涉及数据加减运算,那么建议使用Int类型,但如果是固定数字且小于四位,则可以考虑保存为字符串类型。这将节省空间。

目前,在10gen的努力下,BSON已经有了多种语言的编解码包。而且它们都是在 Apache2license 下开源的。并且还在与 MongoDB 一起进一步发展。关于BSON,您可以在其官方网站bsonspec.org上获取更多信息。

感谢您的阅读!这个艺术关于“如何优化BSON以实现目标”的cle就分享到这里了。希望以上内容能够给大家带来一些帮助,让大家能够学到更多的知识。如果您觉得文章不错,可以分享给其他人。让更多人看到!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > BSON 如何优化以实现目标

用户评论