Mongodb Capped Collection集合
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
Mongodb Capped Collection集合的更多相关文章
- PCB MongoDB 数据库 Collection集合导出与导入
由于一直以来用微软可视化图形界面习惯了,而MongoDB是命令式操作,而用系统自带CMD操作不方便, 这里介绍一款CMD的替代品,大小100多M. Cmder工具下载 https://github. ...
- mongodb的capped Collection集合
db.createCollection(name, {capped: true, autoIndexId: true, size: 1000, max :100} ) name:集合的名字 cappe ...
- MongoDB 之 Capped Collection
MongoDB 支持 Capped Collection,一种固定大小的集合,当集合的大小达到指定大小时,新数据覆盖老数据,MongoDB Replica set 中的 oplog 就是 Capped ...
- MongoDB整理笔记のCapped Collection
1.简单介绍 capped collections 是性能出色的有着固定大小的集合,以LRU(Least Recently Used 最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自 ...
- 关于MongoDB 固定集合(capped collection)的知识梳理
一 . 什么是固定集合 MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection). 固定集合可以声明collection的容量大小,其行为类似于循环 ...
- MongoDB固定集合(capped collection)
一 . 什么是固定集合 MongoDB中有一种特殊类型的集合,值得我们特别留意,那就是固定集合(capped collection). 固定集合可以声明collection的容量大小,其行为类似于循环 ...
- mongoDB 固定集合(capped collection)
固定集合(Capped Collection)是一种尺寸固定的“循环”集合,可提供高效的创建.读取.删除等操作.这里所指的“循环”的意思是,当分配给集合的文件尺寸耗尽时,就会自动开始删除最初的文档,不 ...
- Mongodb学习笔记(二)Capped Collection固定集合
一.Capped Collection固定集合 简单介绍 capped collections是性能出色的有着固定大小的集合(定容集合),以LRU(Least Recently Used最近最少使用) ...
- MongoDB(4)- Collection 集合相关
Collection MongoDB 将文档存储在集合中 集合存储在 Database 中 集合类似于关系数据库(Mysql)中的表 如果集合不存在,则 MongoDB 会在第一次存储该集合数据时创建 ...
随机推荐
- redis集群报错:(error) CLUSTERDOWN The cluster is down
更换了电脑,把原来的电脑上的虚拟机复制到了新电脑上,启动虚拟机上的centos系统,然后启动redis集群(redis5版本),发现集群可以启动,redis进程也有,但是连接集群中的任意节点就报错,如 ...
- Codeforces 850A - Five Dimensional Points(暴力)
原题链接:http://codeforces.com/problemset/problem/850/A 题意:有n个五维空间内的点,如果其中三个点A,B,C,向量AB,AC的夹角不大于90°,则点A是 ...
- CSS入门基础学习一
一.CSS样式 1.什么是CSS: CSS是指层叠样式表(Cascading Style Sheels),CSS通常为CSS样式表或层叠样式表,主要用于设置HTML文本内容,以及版本面的布局等 2.H ...
- 【HDOJ6630】permutation 2(递推)
题意:给定x,y,n,有标号从1到n的n个数组,求合法的排列个数模998244353使得 1:p[1]=x 2:p[n]=y 3:相邻两项的差的绝对值<=2 n<=1e5 思路: #inc ...
- [CSP-S模拟测试]:柱状图(树状数组+二分+三分)
题目描述 $WTH$获得了一个柱状图,这个柱状图一共有$N$个柱子,最开始第$i$根柱子的高度为$x_i$,他现在要将这个柱状图排成一个屋顶的形状,屋顶的定义如下:$1.$屋顶存在一个最高的柱子,假设 ...
- CSU 1548 Design road(三分查找)
题目链接:https://cn.vjudge.net/problem/142542/origin Description You need to design road from (0, 0) to ...
- HttpClient请求服务器图片
我们先引入一个IO流相关的Jar包, 从apache下载 下载后,jar包和源码如图: 我们只需要将jar包引入项目: 之后我们使用FileUtils这个类,其中有一个文件复制方法. 我们将请求的图片 ...
- Schema 与数据类型优化
这是<高性能 MySQL(第三版)>第四章<Schema 与数据类型优化>的读书笔记. 1. 选择优化的数据类型 数据类型的选择原则: 越小越好:选择满足需求的最小类型.注意, ...
- 【ABAP系列】SAP ABAP模块-任意report作为附件以邮件形式发送
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP模块-任意rep ...
- jQuery DataTables 分页
HTML:================================================================== <div class="ibox-con ...