mongodb设定集合为固定巨细办法Capped CollectionITeye - 凯时娱乐

mongodb设定集合为固定巨细办法Capped CollectionITeye

2019-01-11 05:09:57 | 作者: 然然 | 标签: 巨细,固定,文档 | 浏览: 1164

        在一些特别情况下,需要将mongodb的调集设定为一个固定巨细,这样数据文件就不会无约束的增大,有利于保护。

        自己碰到的问题便是ceilometer运用的mongodb,因为不断的收集数据,导致数据文件不断增大,有时分就会将磁盘占满,导致呈现其他问题。选用这种设定一个固定巨细的办法,有用处理了这个问题。

 1.Capped Collection介绍

        Capped Collection 是一种特别的调集,它巨细固定,当调集的巨细到达指定巨细时,新数据掩盖老数据。Capped collections能够依照文档的刺进次序保存到调集中,并且这些文档在磁盘上寄存方位也是依照刺进次序来保存的,所以当咱们更新Capped collections中文档的时分,更新后的文档不能够超越之前文档的巨细,这样话就能够保证一切文档在磁盘上的方位一向坚持不变。

因为Capped collection是依照文档的刺进次序而不是运用索引确认刺进方位,这样的话能够进步增加数据的功率。MongoDB的操作日志文件oplog.rs便是运用Capped Collection来完成的。
除此之外,Capped Collection还有以下的一些特色,首先是不允许删去,可是能够调用drop()删去调集中的一切行,不许删去的原因也是为了坚持每个文档在磁盘上的方位不变。在32位机器上一个capped collection的最大值约482.5M,64位上没有约束体系文件巨细约束。不能够对 Capped Collection 进行分片,在 2.2 版别今后,创立的Capped Collection 默许在 _id 字段上创立索引,而在 2.2 版别或曾经没有。 
Capped Collection首要用于存储日志信息和缓存一些少用的文档。

2.详细运用

2.1创立Capped Collection

 

db.createCollection("meter",{capped:true,size:1073741824,max:50})

    阐明:经过 db.createCollection 指令创立 Capped Collection 调集,创立时有必要指定

             调集最大值,用于预先分配空间。上面的比如是每个文件最大为1G,保存最多50个目标。一般能够不必限制目标的数量。

2.2检查调集是否是Capped collection   

 db.meter.isCapped()
 db.meter.stats()

下面是自己的测验成果:

 db.meter.drop()
 db.createCollection("meter",{capped:true,size:1073741824,max:50})
 db.meter.isCapped()
 db.meter.stats()
 "ns" : "ceilometer.meter",
 "count" : 5,
 "size" : 7452,
 "avgObjSize" : 1490.4,
 "storageSize" : 1073741824,
 "numExtents" : 1,
 "nindexes" : 1,
 "lastExtentSize" : 1073741824,
 "paddingFactor" : 1,
 "systemFlags" : 1,
 "userFlags" : 0,
 "totalIndexSize" : 8176,
 "indexSizes" : {
 "_id_" : 8176
 "capped" : true,
 "max" : 50,
 "ok" : 1
}

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表凯时娱乐立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章