MongoDB:MongoDB相关概念

本文介绍了MongoDB的内部逻辑结构及其数据存储方式,包括文档、集合和数据库之间的对应关系,以及.ns文件和数据文件的作用。阐述了预分配空间机制如何帮助MongoDB高效管理磁盘空间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB的一些数据库操作


  • MongoDB的逻辑结构
    文档(document)   –> 关系型数据库 —> 行(row)   
    集合(collection)   –> 关系型数据库 —> 表(table)   
    数据库(database)  –> 关系型数据库 —> 数据库(database)
    
  • 数据存储结构
    1.在MongoDB内部,每个数据库都包含一个.ns文件和一些数据文件,而且这些数据文件会随着数据量的增加而变得越来越多。
    如果系统中有一个叫做foo的数据库,那么构成foo这个数据库的文件就会由:foo.ns,foo.0,foo.1,foo.2 等组成。  
    *.0 数据文件 --> 相应盘区对应的不同名字空间  
    *.1 数据文件  
    *.2 预分配的空文件  
    
    2.MongoDB内部有预分配空间的机制,每个预分配的文件都用0进行填充,由于有了这个机制, MongoDB始终保持额外的空间和空余的数据文件,
    从而有效避免了由于数据暴增而带来的磁盘压力过大的问题。  
    由于表中数据量的增加,数据文件每新分配一次,它的大小都会是上一个数据文件大小的2倍,每个数据文件最大2G。
    这样的机制有利于防止较小的数据库浪费过多的磁盘空间,同时又能保证较大的数据库有相应的预留空间使用。  
    
    3.数据库的每张表都对应一个命名空间,每个索引也有对应的命名空间。这些命名空间的元数据都集中在*.ns文件中。  
    *.ns 表或索引对应的命名空间  
    
    4. $freelist命名空间:这个命名空间用于记录不再使用的盘区(被删除的Collection或索引)。
    每当命名空间需要分配新的盘区的时候,都会先查看$freelist是否有大小合适的盘区可以使用,这样就回收空闲的磁盘空间。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值