mongodb数据文件结构——record是内嵌BSON的双向链表,多个record或索引组成extent

Posted 将者,智、信、仁、勇、严也。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb数据文件结构——record是内嵌BSON的双向链表,多个record或索引组成extent相关的知识,希望对你有一定的参考价值。

数据文件结构

Extent

在每一个数据文件内,MongoDB把所存储的BSON文档的数据和B树索引组织到逻辑容器“Extent”里面。如下图所示(my-db.1和my-db.2 是数据库的两个数据文件):

技术分享

  • 一个文件可以有多个Extent
  • 每一个Extent只会包含一个集合的数据或者索引
  • 同一个集合的数据或索引可以分布在多个Extent内。这几个Extent也可以分步于多个文件内
  • 同一个Extent不会又有数据又有索引

Record 记录

在每个Extent里面存放有多个”Record“, 每一个记录里包含一个记录头以及MongoDB的BSON文档,以及一些额外的padding空间。Padding是MongoDB在插入记录时额外分配 一些未用空间,这样将来文档变大的时候不至于需要把文档迁移到别处。 记录头以整个记录的大小开始,包括该记录自己的位置以及前一个记录和后一个记录的位置。可以想象成一个Double Linked List。

技术分享

转自:http://www.mongoing.com/blog/file-storage

以上是关于mongodb数据文件结构——record是内嵌BSON的双向链表,多个record或索引组成extent的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB 学习笔记之 DBRef

MongoDB对数组元素及内嵌文档进行增删改查操作

mongodb对数组元素及内嵌文档进行增删改查操作(转)

在HTML文档中引入JavaScript有两种方式,一种是内嵌式;另一种是_____?

Mongodb的 mongoTemplate 内嵌文档怎么进行查询?

mongoDB在java中怎么根据内嵌文档条件查询