MongoDB 固定集合(Capped Collections)是性能出色且有着固定大小的集合,对于大小固定,我们可以想象其就像一个环形队列,当集合空间用完后,再插入的元素就会覆盖最初始的头部的元素!


创建固定集合

我们通过createCollection来创建一个固定集合,且capped选项设置为true:

>db.createCollection("cappedLogCollection",{capped:true,size:10000})

还可以指定文档个数,加上max:1000属性:

>db.createCollection("cappedLogCollection",{capped:true,size:10000,max:1000})

判断集合是否为固定集合:

>db.cappedLogCollection.isCapped()

如果需要将已存在的集合转换为固定集合可以使用以下命令:

>db.runCommand({"convertToCapped":"posts",size:10000})

以上代码将我们已存在的 posts 集合转换为固定集合。


固定集合查询

固定集合文档按照插入顺序储存的,默认情况下查询就是按照插入顺序返回的,也可以使用$natural调整返回顺序。

>db.cappedLogCollection.find().sort({$natural:-1})


固定集合的功能特点

可以插入及更新,但更新不能超出collection的大小,否则更新失败,不允许删除,但是可以调用drop()删除集合中的所有行,但是drop后需要显式地重建集合。

在32位机子上一个cappped collection的最大值约为482.5M,64位上只受系统文件大小的限制。


固定集合属性及用法

属性

  • 属性1:对固定集合进行插入速度极快
  • 属性2:按照插入顺序的查询输出速度极快
  • 属性3:能够在插入最新数据时,淘汰最早的数据

用法

  • 用法1:储存日志信息
  • 用法2:缓存一些少量的文档

Capped Collection是性能出色的有着固定大小的集合,以LRU(least Recently Used,最近最少使用)规则和插入顺序执行age-out(老化移出)处理,自动维护集合中对象的插入顺序。

一、创建Capped Collection 

创建时候要预先指定大小,如果空间用完,新添加的对象将会取代集合中最近的对象。更新如果超出了collectiond 大小,则会更新失败。虽然不允许删除,但是可以调用drop方法删除集合中所有的文档。 删除后要显示重建集合。在32机器上,一个capped collection的最大值约是482.5M,64位只受系统文件大小的限制。

一个普通的collection转换为Capped Collection,只要调用convertToCapped()命令即可;

二、Capped Collection的用途

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中能够存放的最大文档数

参见:http://blog.csdn.net/sxb0841901116/article/details/41688003

转载于:https://www.cnblogs.com/GtShare/p/7661882.html

Mongodb Capped Collection集合相关推荐

  1. mongodb Capped Collection

    MongoDB 支持 Capped Collection,一种固定大小的集合,当集合的大小达到指定大小时, 新数据覆盖老数据,MongoDB Replica set 中的 oplog 就是 Cappe ...

  2. MongoDB Capped Collection 使用

    一 Capped Collection 简介  Capped Collection 是一种特殊的集合,它大小固定,当集合的大小达到指定大小时,新数据覆盖老数据.Capped collections可以 ...

  3. MongoDB Capped Collection介绍

    简单介绍 capped collections是性能出色的有着固定大小的集合(定容集合),以LRU(Least Recently Used最近最少使用)规则和插入顺序进行 age-out(老化移出)处 ...

  4. mongodb的capped Collection集合

    db.createCollection(name, {capped: true, autoIndexId: true, size: 1000, max :100} ) name:集合的名字 cappe ...

  5. MongoDB 之 Capped Collection

    MongoDB 支持 Capped Collection,一种固定大小的集合,当集合的大小达到指定大小时, 新数据覆盖老数据,MongoDB Replica set 中的 oplog 就是 Cappe ...

  6. MongoDB固定集合(capped collection)

    一 . 什么是固定集合 MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection). 固定集合可以声明collection的容量大小,其行为类似于循环 ...

  7. mongodb固定集合(Capped Collection)和大文件管理(GridFS)

    Capped Collection 固定集合(Capped Collection)是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age ...

  8. mongodb固定集合(Capped Collections) | MongoDB 自动删除集合中过期的数据——TTL索引

    文章目录 mongodb固定集合(Capped Collections) 一.什么是mongodb固定集合(Capped Collections) 二.Capped Collections使用场景 三 ...

  9. 【MongoDB】固定集合(Capped Collections)

    本章内容: 概述 特性 限制和建议 使用步骤 一.概述 固定集合是大小固定的集合,它们支持高吞吐量操作,这些操作根据插入文档和按照插入顺序检索(retrieve)文档.固定集合的工作方式类似于循环缓存 ...

最新文章

  1. 任意长度的字典生成算法
  2. 2013-10-31 《October 31st, 2013》
  3. QT的QCullFace类的使用
  4. c语言布尔 printf,fmt.Printf中的格式化动作('verb')
  5. 职场潜规则:领导常说的10句话,学会3句以上你不会混的太差!
  6. 郝斌--数据结构---汉诺塔实现(c语言实现)
  7. linux服务器出现黄,linux服务器出现严重故障后的原因以及解决方法
  8. java permgen_Java 8:从PermGen到元空间
  9. FFmpeg架构之I/O模块分析
  10. Elasticsearch 健康状态处理
  11. 100句话,是否会触动你?
  12. 对单片机毕业设计的理解
  13. C语言求:哥尼斯堡七桥问题
  14. 好用的在线工具,提高你的办公工作效率
  15. SAP中ABAP的生产订单调用BAPI进行投料BAPI_GOODSMVT_CREATE(根据生产订单号进行投料,可以修改物料数量)
  16. mtk 手机 linux,【ZT】MTK X20编译环境搭建 烧写安卓固件详细教程
  17. mysql 查询最近三个月的数据
  18. BlueHost主机从零开始使用笔记,我踩过的坑你就不要踩了.
  19. 转龚文祥的一篇文章:对看起来很美的网站要保持审慎的乐观
  20. 为什么很多企业都在使用短信群发?原来是有3大好处!

热门文章

  1. 摩根大通CEO吉米·戴蒙质疑比特币2100万枚上限的道理和错误
  2. 科研论文写作工具推荐
  3. Exchanger 线程数据交换器
  4. IBM首位CMO谈新型营销理念:“增强营销”的崛起
  5. oracle数据库管理题库,oracle数据库题库
  6. 【HTML】浪漫程序员 HTML5爱心表白动画
  7. linux系统 gwas分析,GWAS真的只有关联分析这么简单?
  8. iMeta | 中国农大杨栋组揭示膳食纤维化学结构对肠道微生物的调控
  9. 【PF三维路径规划】基于matlab改进的粒子滤波无人机三维路径规划【含Matlab源码 1269期】
  10. Idea中更改编码方式