博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MongoDB-固定集合 capped collection 操作 介绍
阅读量:6301 次
发布时间:2019-06-22

本文共 2182 字,大约阅读时间需要 7 分钟。

固定集合:capped collection 是性能出色的固定大小的集合,以LRU算法淘汰记录,自助维护集合中的对象的插入顺序,创建时预先制定大小,空间使用完,心对象取代旧的对象,保持最新的数据。

 可以插入及更新,但更新不能超出 

collection 的大小,否则更新失败。不允许删除,但是可 以调用 drop() 删除集合中的所有行,但是drop 后需要显式地重建集合。在 32 位机上,一 个 capped collection 的最大值约为 482.5M,64 位上只受系统文件大小的限制。

属性以及用法:

属性:1、对固定集合插入速度极快。

           2、按照插入顺序的查询输出速度极快。

           3、能够在插入最新时候淘汰最早的数据。

用法:1、储存日志信息。

   2、储存少量的文档。

使用

 1、可以在创建 capped collection 时指定 collection 中能够存放的最大文档数。但这时也要指

定 size, 因为总是先检查 size 后检查 maxRowNumber。 可以使用 validate()查看一个 collection 已经使用了多少空间,从而决定size 设为多大。如:

db.createCollection("mycoll", {capped:true, size:100000, max:100});  //100000表示字节

 

注意:指定文档上限,必须指定大小,文档限制是在容量没满时进行淘汰,要是满了,就根据容量限制来进行淘汰。

> db.createCollection("mycol",{capped:true,size:100000,max:100}){ "ok" : 1 }> db.mycol.valdb.mycol.validate(  db.mycol.valueOf(> db.mycol.validate()          //用来查看固定集合的使用情况{    "ns" : "admin.mycol",    "capped" : true,    "max" : 100,    "firstExtent" : "0:8c000 ns:admin.mycol",    "lastExtent" : "0:8c000 ns:admin.mycol",    "extentCount" : 1,    "datasize" : 0,    "nrecords" : 0,    "lastExtentSize" : 102400,    "padding" : 1,    "firstExtentDetails" : {        "loc" : "0:8c000",        "xnext" : "null",        "xprev" : "null",        "nsdiag" : "admin.mycol",        "size" : 102400,        "firstRecord" : "null",        "lastRecord" : "null"    },    "deletedCount" : 2,    "deletedSize" : 102224,    "nIndexes" : 1,    "keysPerIndex" : {        "admin.mycol.$_id_" : 0    },    "valid" : true,    "errors" : [ ],    "warning" : "Some checks omitted for speed. use {full:true} option to do more thorough scan.",    "ok" : 1}> db.createCollection("mycol",{capped:true,size:100000,max:100,autoIndexId:false})//创建collection时还有一个参数”autoIndexID”,值可以为”true”和”false”,决定是否需要在”_id”上创建索引{ "ok" : 0, "errmsg" : "collection already exists" } > db.mycol.drop() true > db.createCollection("mycol",{capped:true,size:100000,max:100,autoIndexId:false}) { "ok" : 1 } >

2、转换集合   把test普遍集合转换为固定集合,大小为10000字节.

db.runCommand( { convertTocapped:"test",size:10000 } );

 3、自然排序

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

db.mycappedcolt.find().sort( {
"$natural":1} );

参数1表示默认顺序,-1则相反.

4、判断集合是否为固定集合

db.colt.isCapped();

5、查看集合状态信息

db.colt.stats();

 

转载地址:http://fygta.baihongyu.com/

你可能感兴趣的文章
数据库基础知识讲解
查看>>
金额格式化
查看>>
Linux基础知识
查看>>
10秒内失败登录了3次 屏蔽ip登录
查看>>
处理JSON数据
查看>>
rpm安装的php 通过编译增加模块
查看>>
让 FCKeditor 支持多用户Web环境(以PHP为例)
查看>>
Android官方开发文档Training系列课程中文版:Activity测试之创建功能性测试
查看>>
kafka初装学习
查看>>
微访谈:引爆微博舆论爆发的导火索
查看>>
High-availability MongoDB Cluster Configuration Solutions
查看>>
蚂蚁分类信息系统 5.8 增加七牛云存储插件
查看>>
如何在命令行下远程安装终端服务
查看>>
SuSE上配置DNS客户端方法
查看>>
无线网卡mac地址修改
查看>>
【数据蒋堂】第42期:RDB与NoSQL的访问性能
查看>>
leetCode 36. Valid Sudoku(数独) 哈希
查看>>
[unity3d]如何实现游戏对象跟随鼠标方向移动
查看>>
Asp.net中关于上传文件的各项基本操作
查看>>
使用Docx4j操作PPT指南系列(一)
查看>>