如何压缩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相关的功能也可以实现以上说的数据压缩,具体过程比较麻烦,还会涉及到客户端的切换等操作。

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

本文名称:如何压缩MongoDB的数据文件-创新互联
URL链接:https://www.cdcxhl.com/article4/cepjoe.html

成都网站建设公司_创新互联,为您提供静态网站定制开发网站建设网站维护手机网站建设自适应网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作