MongoDB数据文件结构
2017-01-18 13:38
274 查看
.ns文件记录着若干个集合命名空间和索引命名空间。
一个集合命名空间又有多个数据域(extent),集合命名空间里存储着集合的元数据,比如集合名称,集合的第一个数据域和最后一个数据域的位置等等。而一个数据域由若干条文档(document)组成,每个数据域都有一个头部,记录着第一条文档和最后一条文档的为知,以及该数据域的一些元数据。extent之间,document之间通过双向链表连接。
每页的存储空间为4K
TotalSize(4)| { BSONType(1)| FieldName | Data } * EOO(1)
TotalSize:Document转换为BSON后的总长度,4个字节表示
BSONType:Data的数据类型,占一个字节
FieldName:字段名,例子中的hello,key/value的"key",UTF-8字符串,字符串都有一个结束符'\0'
Data:key/value的value,例子中的"world",如果是字符串则在Data前需要另加四个字节存储Data的长度,如果是其他格式可以参考官网规范。
*:key/value的对数,比如{"hello":"world", "hello1":"world1"},有两对
EOO:结束符,\x00
分析例子{"hello":"world"}的长度:
TotalSize(4) + BSONType(1) + FieldName(5+1) + Data(4 + 5 + 1) + EOO(1) = 22 字节
Record:
一个集合命名空间又有多个数据域(extent),集合命名空间里存储着集合的元数据,比如集合名称,集合的第一个数据域和最后一个数据域的位置等等。而一个数据域由若干条文档(document)组成,每个数据域都有一个头部,记录着第一条文档和最后一条文档的为知,以及该数据域的一些元数据。extent之间,document之间通过双向链表连接。
每页的存储空间为4K
TotalSize(4)| { BSONType(1)| FieldName | Data } * EOO(1)
TotalSize:Document转换为BSON后的总长度,4个字节表示
BSONType:Data的数据类型,占一个字节
FieldName:字段名,例子中的hello,key/value的"key",UTF-8字符串,字符串都有一个结束符'\0'
Data:key/value的value,例子中的"world",如果是字符串则在Data前需要另加四个字节存储Data的长度,如果是其他格式可以参考官网规范。
*:key/value的对数,比如{"hello":"world", "hello1":"world1"},有两对
EOO:结束符,\x00
分析例子{"hello":"world"}的长度:
TotalSize(4) + BSONType(1) + FieldName(5+1) + Data(4 + 5 + 1) + EOO(1) = 22 字节
Record:
相关文章推荐
- MongoDB数据文件内部结构
- MongoDB数据文件内部结构
- MongoDB数据文件内部结构(转载)
- MongoDB数据文件内部结构
- 10gen工程师:MongoDB数据文件内部结构
- MongoDB数据文件内部结构
- MongoDB数据文件内部结构
- MongoDB数据文件内部结构
- Mongodb 数据文件结构
- MongoDB数据文件内部结构
- MongoDB数据文件内部结构
- mongodb数据文件内部结构
- MongoDB数据文件内部结构 (MongoDB Storage Internal)
- MongoDB数据文件内部结构
- mongodb数据文件结构——record是内嵌BSON的双向链表,多个record或索引组成extent
- oracle之物理数据库结构概述(数据文件、重做日志文件,控制文件等各种数据库文件)
- MongoDB在java中的操作-添,删,查 基本数据 文件存储 可使用
- 使用TFileStream读取文件,分析自定义结构的数据文件。
- Ogre数据文件结构分析
- 文件相关内核数据结构