每一个数据库都有一个.ns文件和有单向递增的数值扩展名的多个数据文件。
例如test数据库,会有test.ns、test.1和test.2等文件
对于数据库的每一个新的数值数据文件,其大小将是前一个数值数据文件大小的两倍。文件大小限制是2GB,
如果该文件达到了2G,则后续的数据编号文件也将保持为2GB大小,这一行为会确保小数据库不会浪费过多的
硬盘空间,为确保一致的性能,MongoDB会预先分配数据文件,该过程是在后台进行的,并且在每次填充一个
数据文件时候启动。这意味着MongoDB服务器总是会尝试为每一个数据库保留一个额外的空数据文件,以避免
文件分配时出现阻塞。
如果想分配小文件,可以修改storage.mmapv1.smallFiles参数选项。
.ns命名空间文件
在数据文件中,数据空间会被划分为多个命名空间,其中命名空间对应于一个集合或者一个索引。
这些命名空间的元数据信息存储在.ns文件里,在数据目录里,将会发现一个名为[dbname].ns的文件。用于存储
元数据的.ns文件大小是16MB。
集合命名空间里包含了一些元数据:
集合的名称
集合上的统计信息(计数和大小等)
第一个范围信息
最后一个范围信息
删除列表
索引详情
范围指的是一个数据文件中的一个数据记录分组,因此一个范围分组就组成了一个命名空间的完整数据,范围使用
硬盘位置来指向实际驻留数据的硬盘位置,它由两部分构成:文件编号和偏移量。
文件编号指定了它指向的数据文件(0和1等)
偏移量是文件中的位置,偏移量大小是4KB,因此偏移量的最大值可以被设置为2的31次方-1。
范围数据结构由以下内容构成:
硬盘上的位置
下一个和上一个范围的指针
双链表,维护到其指向数据块的第一个数据记录和最后一个数据记录的指针,也就是文件中的偏移量。
数据记录结构由以下内容构成:
由于数据记录结构是范围双链表的一个元素,因此它会存储上一个和下一个记录的信息
头信息具有长度内容
数据块
例如test数据库,会有test.ns、test.1和test.2等文件
对于数据库的每一个新的数值数据文件,其大小将是前一个数值数据文件大小的两倍。文件大小限制是2GB,
如果该文件达到了2G,则后续的数据编号文件也将保持为2GB大小,这一行为会确保小数据库不会浪费过多的
硬盘空间,为确保一致的性能,MongoDB会预先分配数据文件,该过程是在后台进行的,并且在每次填充一个
数据文件时候启动。这意味着MongoDB服务器总是会尝试为每一个数据库保留一个额外的空数据文件,以避免
文件分配时出现阻塞。
如果想分配小文件,可以修改storage.mmapv1.smallFiles参数选项。
.ns命名空间文件
在数据文件中,数据空间会被划分为多个命名空间,其中命名空间对应于一个集合或者一个索引。
这些命名空间的元数据信息存储在.ns文件里,在数据目录里,将会发现一个名为[dbname].ns的文件。用于存储
元数据的.ns文件大小是16MB。
集合命名空间里包含了一些元数据:
集合的名称
集合上的统计信息(计数和大小等)
第一个范围信息
最后一个范围信息
删除列表
索引详情
范围指的是一个数据文件中的一个数据记录分组,因此一个范围分组就组成了一个命名空间的完整数据,范围使用
硬盘位置来指向实际驻留数据的硬盘位置,它由两部分构成:文件编号和偏移量。
文件编号指定了它指向的数据文件(0和1等)
偏移量是文件中的位置,偏移量大小是4KB,因此偏移量的最大值可以被设置为2的31次方-1。
范围数据结构由以下内容构成:
硬盘上的位置
下一个和上一个范围的指针
双链表,维护到其指向数据块的第一个数据记录和最后一个数据记录的指针,也就是文件中的偏移量。
数据记录结构由以下内容构成:
由于数据记录结构是范围双链表的一个元素,因此它会存储上一个和下一个记录的信息
头信息具有长度内容
数据块
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2156368/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15498/viewspace-2156368/