温馨提示×

MongoDB在Linux上的存储结构是怎样的

小樊
67
2025-09-08 18:37:20
栏目: 云计算

MongoDB在Linux上的存储结构可从逻辑和物理层面来看,具体如下:

  • 逻辑存储结构
    采用**数据库(Database)→集合(Collection)→文档(Document)**的层次结构。

    • 数据库:可包含多个集合,类似关系型数据库的库概念。
    • 集合:存储文档的容器,类似表结构,无固定列定义,支持嵌套文档和数组。
    • 文档:由BSON(二进制JSON)格式的键值对组成,是数据存储的基本单元,包含唯一_id字段。
  • 物理存储结构

    • 数据文件
      • 由配置文件中的dbpath指定存储路径(默认/data/db/var/lib/mongodb)。
      • 以**数据文件(.0、.1等)命名空间文件(.ns)**组成,早期版本(如MMAPv1引擎)可见,WiredTiger引擎下不可直接查看。
      • 数据文件按**Extent(区)**划分,每个Extent包含多个页(默认1MB),文档存储在页中。
    • 日志文件
      • 存储数据变更操作,用于故障恢复,通常位于/var/lib/mongodb/logs/目录。
    • 索引文件
      • 基于B树结构存储,加速查询,与数据文件分离存储。
  • 特殊存储场景(如GridFS)
    用于存储大文件(超过16MB),通过fs.files(元数据)和fs.chunks(分块数据)两个集合管理。

目录结构示例(Ubuntu)

/var/lib/mongodb/       # 数据存储根目录  
├── data/               # 数据文件目录  
│   ├── db/             # 默认数据库文件  
│   └── admin/          # 系统数据库  
├── logs/               # 日志文件(mongod.log)  
└── config/             # 配置文件(mongod.conf)  

以上信息综合自。

0