千家信息网

如何压缩MongoDB的数据文件

发表于:2024-10-24 作者:千家信息网编辑
千家信息网最后更新 2024年10月24日,如何压缩MongoDB的数据文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MongoDB采用了磁盘空间预分配的机制,
千家信息网最后更新 2024年10月24日如何压缩MongoDB的数据文件

如何压缩MongoDB的数据文件,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  MongoDB采用了磁盘空间预分配的机制,为了避免磁盘碎片以及使用mmap后造成的近一步的内存碎片,但是随着数据的增删除改操作,数据文件不可避免的会产生空洞,造成磁盘空间和内存的浪费。

  怎样压缩MongoDB的数据文件

  1.通过repairDatabase整理数据文件

  repairDatabase是MongoDB内置的一个db上的方法,调用这个方法,MongoDB会扫描db中的所有数据,并将通过重新插入来重新整理数据集合。

  这种方法的代价是对这个db的读写操作会变得非常之慢,甚至会出现写操作丢失的情况。所以这个时候最好直接停掉客户端的写操作。

  可以创建bar.js文件,写入如下代码:

  //Getathecurrentcollectionsize.

  varstorage=db.foo.storageSize();

  vartotal=db.foo.totalSize();

  print('StorageSize:'+tojson(storage));

  print('TotalSize:'+tojson(total));

  print('-----------------------');

  print('Runningdb.repairDatabase()');

  print('-----------------------');

  //Runrepair

  db.repairDatabase()

  //Getnewcollectionsizes.

  varstorage_a=db.foo.storageSize();

  vartotal_a=db.foo.totalSize();

  print('StorageSize:'+tojson(storage_a));

  print('TotalSize:'+tojson(total_a));

  然后运行:

  $mongofoobar.js

  运行结果:

  MongoDBshellversion:1.6.4

  connectingto:foo

  StorageSize:51351

  TotalSize:79152

  -----------------------

  Runningdb.repairDatabase()

  -----------------------

  StorageSize:40960

  TotalSize:65153

  怎样压缩MongoDB的数据文件

  2.如果应用可以接受,可以考虑使用cappedcollection

  cappedcollection是MongoDB中的一种特殊collection,它的大小可以限定,数据在这个限定大小内循环写入,在数据集合达到上限后,新数据会覆盖老的数据。这样磁盘上的空洞在一段时间后会自动消除。

  事实上使用replication相关的功能也可以实现以上说的数据压缩,具体过程比较麻烦,还会涉及到客户端的切换等操作。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 文件 磁盘 方法 内存 大小 客户 碎片 空洞 空间 端的 帮助 运行 清楚 特殊 不可避免 上限 事实 事实上 代价 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 不休战队新服务器活动 在网络安全中常用的网络技术 临沂市公安局网络安全管理6 广东卫视网络安全宣传周 银行网络安全运营 个体网络安全有哪些项目 计算机网络技术网络设备教案 智能网联软件开发技术栈 阿里云服务器应用的场景 效果好的网络安全评估 电脑吃鸡服务器非常繁忙什么意思 2021年北京网络安全大会视频 才正软件开发有限公司 阿里云国际服务器多少钱一年 网络应用开发和网络安全论文 网络安全什么认证专业 当地的dns服务器地址 软件开发的项目计划是什么 软件开发收入确认账务处理 tp数据库设计工具 强大的软件开发外包 浏览器访问数据库 阿里云数据库用的是什么芯片 天津河东废旧服务器回收公司 衡阳市软件开发培训 数据库软件 替换功能 南方电网网络安全面试题 和田玉鉴别软件开发 第七届国家网络安全讲堂 access数据库备份
0