免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1665 | 回复: 0
打印 上一主题 下一主题

[MongoDB] [原创] MongoDB管理与开发精要《红丸出品》6 Capped Collection [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-29 19:55 |只看该作者 |倒序浏览
[backcolor=rgb(245, 247, 24]
[backcolor=rgb(245, 247, 24]第六章 Capped Collection 6.1 简单介绍
capped collections是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时要预先指定大小。如果空间用完,新添加的对象将会取代集合中最旧的对象。
6.2 功能特点
可以插入及更新,但更新不能超出collection的大小,否则更新失败。不允许删除,但是可以调用drop() 删除集合中的所有行,但是drop后需要显式地重建集合。在32位机上,一个capped collection的最大值约为482.5M,64位上只受系统文件大小的限制。
6.3 常见用处
1、  logging
MongoDB中日志机制的首选,MongoDB没有使用日志文件,而是把日志事件存储在数据库中。在一个没有索引的capped collection中插入对象的速度与在文件系统中记录日志的速度相当。
2、  cache
缓存一些对象在数据库中,比如计算出来的统计信息。这样的需要在collection上建立一个索引,因为使用缓存往往是读比写多。
3、  auto archiving
可以利用capped collection的age-out特性,省去了写cron脚本进行人工归档的工作。
6.4 推荐用法
1、    为了发挥capped collection的最大性能,如果写比读多,最好不要在上面建索引,否则插入速度从"log speed"降为"database speed"。
2、使用"nature ordering"可以有效地检索最近插入的元素,因为capped collection能够保证自然排序就是插入时的顺序,类似于log文件上的tail操作。
6.5 注意事项
1、可以在创建capped collection时指定collection中能够存放的最大文档数。但这时也要指定size,因为总是先检查size后检查maxRowNumber。可以使用validate()查看一个collection已经使用了多少空间,从而决定size设为多大。如:
db.createCollection("mycoll", {capped:true, size:100000, max:100});
db.mycoll.validate();
max=1时会往collection中存放尽量多的documents。
2、上述的createCollection函数也可以用来创建一般的collection,还有一个参数"autoIndexID",值可以为"true"和"false"来决定是否需要在"_id"字段上自动创建索引,如:
db.createCollection("mycoll", {size:10000000, autoIndexId:false})。
默认情况下对一般的collection是创建索引的,但不会对capped collection创建。
-------------------------------------------------------------------
免费收几个想学数据库IT技术的徒弟(限北京)   
《MongoDB管理与开发精要》、《Redis实战》作者
新浪博客                  http://blog.sina.com.cn/u/2446082491
ChinaUnix.net专家 http://cdhongwan.blog.chinaunix.net
@CD红丸                http://weibo.com/u/2446082491
红丸IT培训群            http://q.weibo.com/1282646


您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP