我想了解MongoDB查询是如何工作的。
如果我错了,请纠正我,但是MongoDB使用序列化协议BSON来保存真正的文档中的数据,称为集合。我指的是真正的文件而不是记忆中的文件。
若要快速搜索数据,请使用B树进行任何查询.
保存在文档中的BSON数据是否首先被反序列化,然后插入到B树中,以便索引并从内存中访问?
如果不是,那是怎么回事?
发布于 2021-03-10 19:16:16
据我所知,BSON是服务器使用的数据存储格式。这意味着文档以BSON格式存储在磁盘上,也存储在服务器端的内存中。
索引自然处理单个字段值,而不是完整文档。因此,BSON不适用于索引。我不知道索引是否以与BSON相同的格式存储单个值(例如时间戳、uuid、数组)。
保存在文档中的BSON数据是否首先被反序列化,然后插入到B树中,以便索引并从内存中访问?
服务器端不需要反序列化,因为服务器可以直接访问BSON文档中的数据,也可以本地迭代BSON文档。有关如何完成这一任务,请参见http://mongoc.org/libbson/current/parsing.html。
大多数驱动程序通过使用C以外的语言实现,将整个BSON文档反序列化为他们的语言--原生数据结构,然后访问并迭代该数据结构。
https://stackoverflow.com/questions/66570856
复制相似问题