MongoDB是一个可移植的NoSQL数据库,它几乎可以运行在所有的操作系统之上,从而实现了跨平台性。尽管在不同的操作系统上虽然略有差别,但是从整体上来看,MongoDB在不同的操作系统平台上的体系架构(如数据逻辑结构和数据存储等等)都是一样的。一个运行着的MongoDB数据库就可以看成是一个MongoDB服务器,该服务器由MongoDB数据库实例和MongoDB数据库组成。在一般情况下,一个MongoDB数据库实例可以对应有多个MongoDB数据库,这一点与MySQL数据库类似。如下图所示。
在这里插入图片描述
  与MySQL和Oracle等关系型数据库类似,MongoDB也是通过逻辑存储结构来管理物理存储结构。

  视频讲解如下:
https://www.bilibili.com/video/BV1um421V7A8/?aid=1605688908&c...

一、逻辑存储结构

  MongoDB的逻辑存储结构是一种层次结构,主要包括了三个部分,即:数据库(Database)、集合(Collection,也可以叫做表)和文档(Document,也可以叫做记录)。MongoDB的逻辑存储结构是面向用户使用的,使用mongoshell或者应用程序操作MongoDB时,主要就是操作的MongoDB逻辑存储结构。数据库(Database)、集合(Collection)和文档(Document)的层次结构。如下图所示。
在这里插入图片描述

二、物理存储结构

  MongoDB的默认数据目录是/daba/db,它将负责存储所有的MongoDB的数据文件。在MongoDB内部,每个数据库都包含一个.ns文件、多个数据文件和日志文件。这些文件会随着MongoDB数据量的增加变的越来越多,具体如下:

  • 命名空间文件

  MongoDB的命名空间文件的后缀是ns,默认大小是16M。
数据文件:
  MongoDB的数据文件后缀是0、1、2......,而.0文件16M,.1文件32M,往后则翻倍,最大值为2G,这样可以让小数据库不浪费太多的空间,大数据库能够使用磁盘上连续的空间。通过牺牲空间,换取时间。

由于从3.2版本开始,MongoDB使用了WiredTiger的存储引擎。因此无法直接在/daba/db目录下看到命名空间文件和数据文件。但使用MMAPv1的存储引擎就可以很清楚地看到这些类型的文件。
  • 日志文件
      MongoDB会根据不同的日志信息将日志存储在不同的位置上。下表列举了MongoDB存储日志的相关存储位置信息。
    在这里插入图片描述

赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...