前言

本文主要介绍了关于MongoDB存储数据的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍:
想要深入了解MongoDB如何存储数据之前,有一个概念必须清楚,那就是Memeory-Mapped Files。
Memeory-Mapped Files
下图展示了数据库是如何跟底层系统打交道的。
MongoDB的存储模型
数据文件与空间分配
当创建数据库时(其实MongoDB没有显式创建数据库的方法,在向数据库中的集合写入数据时会自动创建该数据库),MongoDB会在磁盘上分配一组数据文件,所有集合,索引和数据库的其他元数据都保存在这些文件里。数据文件被放在启动时指定的dbpath里,默认放入/data/db下面。典型的一个文件组织结构如下:
$ cat /data/db $ ls -al -rw------- 1 root root 16777216 09-18 00:54 local.ns -rw------- 1 root root 67108864 09-18 00:54 local.0 -rw------- 1 root root 2146435072 09-18 00:55 local.1 -rw------- 1 root root 2146435072 09-18 00:56 local.2 -rw------- 1 root root 2146435072 09-18 00:57 local.3 -rw------- 1 root root 2146435072 09-18 00:58 local.4 -rw------- 1 root root 2146435072 09-18 00:59 local.5 -rw------- 1 root root 2146435072 09-18 01:01 local.6 -rw------- 1 root root 2146435072 09-18 01:02 local.7 -rw------- 1 root root 2146435072 09-18 01:03 local.8 -rw------- 1 root root 2146435072 09-18 01:04 local.9 -rw------- 1 root root 2146435072 09-18 01:05 local.10 -rw------- 1 root root 16777216 09-18 01:06 test.ns -rw------- 1 root root 67108864 09-18 01:06 test.0 -rw------- 1 root root 134217728 09-18 01:06 test.1 -rw------- 1 root root 268435456 09-18 01:06 test.2 -rw------- 1 root root 536870912 09-18 01:06 test.3 -rw------- 1 root root 1073741824 09-18 01:07 test.4 -rw------- 1 root root 2146435072 09-18 01:07 test.5 -rw------- 1 root root 2146435072 09-18 01:09 test.6 -rw------- 1 root root 2146435072 09-18 01:11 test.7 -rw------- 1 root root 2146435072 09-18 01:13 test.8 ... -rwxr-xr-x 1 root root 6 09-18 13:54 mongod.lock drwxr-xr-x 2 root root 4096 11-13 18:39 journal drwxr-xr-x 2 root root 4096 11-13 19:02 _tmp
db.stats()来确认已使用空间和已分配空间。
{
"db" : "test",
"collections" : 37,
"objects" : 317894523, #文档总个数
"avgObjSize" : 232.3416429039893, #单位是字节
"dataSize" : 73860135744, #集合中所有数据实际大小(包括padding factor为每个文档分配的额外空间以允许文档增长)。该值在文档size变小的时候,这个值不会减少,除非文档被删除,或者执行compact或者repairDatabase操作
"storageSize" : 97834319392, #分配给集合的空间大小(包括为集合增长预留的额外空间和未分配的已删除空间,即不会因为文档size变小或者删除而减小),实际上从数据文件中分配给集合的空间是以块为单位,也称之为extents,即分配的extents的大小
"numExtents" : 385,
"indexes" : 86,
"indexSize" : 58687466992,
"fileSize" : 182380920832, #所有数据文件大小之和,不包括命名空间文件(ns文件)
"nsSizeMB" : 16,
"dataFileVersion" : {
"major" : 4,
"minor" : 5
},
"ok" : 1
}
使用db.accesslog.stats()确认某个集合的使用量
{
"ns" : "test.accesslog",
"count" : 145352932,
"size" : 37060264352, #实际数据大小,不包括索引
"avgObjSize" : 254.967435758365,
"storageSize" : 45794676448, #预分配的数据存储空间
"numExtents" : 42,
"nindexes" : 4,
"lastExtentSize" : 2146426864,
"paddingFactor" : 1, #当文档因更新size增长时事先padding可以提速,减少碎片的产生
"systemFlags" : 1,
"userFlags" : 0,
"totalIndexSize" : 31897944512,
"indexSizes" : {
"_id_" : 6722168208,
"action_1_time_1" : 8606482752,
"gz_id_1_action_1_time_1" : 10753778336,
"time_1" : 5815515216
},
"ok" : 1
}
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# mongodb存储数据
# mongodb如何存储数据
# mongodb数据存储结构
# 分布式文档存储数据库之MongoDB分片集群的问题
# python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
# MongoDB存储时间时差问题的解决方法
# MongoDB系列教程(八):GridFS存储详解
# PHP操作MongoDB GridFS 存储文件的详解
# 基于MongoDB实现聊天记录的存储问题小结
# 文档
# 是一个
# 虚拟内存
# 数据库中
# 可以通过
# 也会
# 第一个
# 不包括
# 中分
# 有一个
# 自己的
# 都是
# 磁盘碎片
# 几个
# 都有
# 放在
# 相关内容
# 在这个
# 都在
# 是有
相关文章:
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
如何选择最佳自助建站系统?快速指南解析优劣
建站主机如何选?高性价比方案全解析
如何用美橙互联一键搭建多站合一网站?
如何在Golang中指定模块版本_使用go.mod控制版本号
代购小票制作网站有哪些,购物小票的简要说明?
如何快速搭建高效WAP手机网站吸引移动用户?
如何在Windows 2008云服务器安全搭建网站?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
网站制作话术技巧,网站推广做的好怎么话术?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
建站之星安装后如何配置SEO及设计样式?
c# await 一个已经完成的Task会发生什么
网站制作新手教程,新手建设一个网站需要注意些什么?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
手机怎么制作网站教程步骤,手机怎么做自己的网页链接?
道歉网站制作流程,世纪佳缘致歉小吴事件,相亲网站身份信息伪造该如何稽查?
平台云上自主建站:模板化设计与智能工具打造高效网站
制作门户网站的参考文献在哪,小说网站怎么建立?
完全自定义免费建站平台:主题模板在线生成一站式服务
建站主机是什么?如何选择适合的建站主机?
如何通过山东自助建站平台快速注册域名?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
,柠檬视频怎样兑换vip?
如何选择服务器才能高效搭建专属网站?
如何高效完成自助建站业务培训?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
阿里云网站制作公司,阿里云快速搭建网站好用吗?
Android自定义listview布局实现上拉加载下拉刷新功能
建站之星×万网:智能建站系统+自助建站平台一键生成
公司门户网站制作流程,华为官网怎么做?
武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?
如何制作算命网站,怎么注册算命网站?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
如何在Mac上搭建Golang开发环境_使用Homebrew安装和管理Go版本
开封网站制作公司,网络用语开封是什么意思?
建站主机选购指南与交易推荐:核心配置解析
教程网站设计制作软件,怎么创建自己的一个网站?
如何通过IIS搭建网站并配置访问权限?
Swift开发中switch语句值绑定模式
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
定制建站流程解析:需求评估与SEO优化功能开发指南
网站制作网站,深圳做网站哪家比较好?
官网网站制作腾讯审核要多久,联想路由器newifi官网
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
广平建站公司哪家专业可靠?如何选择?
h5网站制作工具有哪些,h5页面制作工具有哪些?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
香港服务器建站指南:免备案优势与SEO优化技巧全解析
建站ABC备案流程中有哪些关键注意事项?
*请认真填写需求信息,我们会在24小时内与您取得联系。