Capped Collection是性能出色的有着固定大小的集合,以LRU(least Recently Used,最近最少使用)规则和插入顺序执行age-out(老化移出)处理,自动维护集合中对象的插入顺序。
创建时候要预先指定大小,如果空间用完,新添加的对象将会取代集合中最近的对象。更新如果超出了collectiond 大小,则会更新失败。虽然不允许删除,但是可以调用drop方法删除集合中所有的文档。 删除后要显示重建集合。在32机器上,一个capped collection的最大值约是482.5M,64位只受系统文件大小的限制。
一个普通的collection转换为Capped Collection,只要调用convertToCapped()命令即可;
Capped Collection是mongodb中日志机制的首选,mongodb没有使用日志文件,而是吧日志文件存储在数据库中。在一个没有索引的capped collection中插入对象的速度与在文件系统中记录的日志速度相当。
在内存中缓存一些对象,比如,计算出来的统计信息一般需要在collection上建立一个索引,因为使用缓存往往是读比写多。
可以利用capped collection的age-out特性,省去写crontab脚本执行人工归档的工作。
1.如果写比读多,最好不要在上面创建索引;
2,使用natual ordering可以有效地检索最近插入的元素,因为capped collection能够保证自然排序就是插入的顺序。
3. capped collection不能被shard.
4. 可以在创建capped collection时指定collection中能够存放的最大文档数。
新闻热点
疑难解答