mongodb固定集合、TTL集合
来源:互联网 发布:怎么限制电脑软件联网 编辑:程序博客网 时间:2024/05/16 07:26
mongodb固定集合、TTL集合
在数据量较少的情况下,或者只需要保存部分的数据,使用固定集合不失为一个比较好的选择。
- 插入、查询的速度非常快。
创建固定集合
有点类似数据结构中的循坏队列,先进先出方式。满队列删除原来的元素。
固定集合与普通集合有所不同,需要显示的创建,指定size,max参数。当其中某个条件满足,将会删除最先进来的元素。
db.createCollection(“test_log”,{capped:true,size:2,max:2})
查看索引:
mongos> db.test_log.getIndexes()
[
{
“v” : 1,
“key” : {
“_id” : 1
},
“name” : “id“,
“ns” : “admin.test_log”
}
]自然排序的方式,在mongodb3.0以上默认采用_id作为索引。
- 也可以自定义索引。
转换为固定集合
普通集合可以通过 convertToCapped将普通集合转为固定集合
db.runCommand({convertToCapped:”test_2”,size:10,max:3})
但是固定集合的特点是:
不能进行分区,因为它本身就是不是针对大数据集合的,所以,也许这个时候可以考虑使用TTL索引。
TTL集合
通过创建TTL索引,就构建了一个TTL集合,索引建立的原则:
- 索引字段必须为时间类型
- 在本地上进行测试,进行多个分片,片键选择为key1+timeKey,成功分片。
- 确保数据保存在一定范围内,其实主要是后台有一个线程,平均60s执行一次,对超期的数据进行删除。所以,这部分也有性能的损耗,需要权衡。
建立语句:
db.ttl_test.ensureIndex({“time”:1},{expireAfterSeconds:20}})
设置其为20s后删除数据,真实情况下可能并不能精确到20s.
选择
对于大数据量来说,希望只保存几个月的数据,固定集合与TTL貌似都是对数据进行的限制。但是固定集合无法精确到具体的时间,文档的条数与文档大小都不能确定。主要是固定集合无法分片,对于需要经常查询的可能就不是太合适。
当然仅仅保存log文件,查看最新的log还是不错的选择
- mongodb固定集合、TTL集合
- MongoDB中的固定集合
- Mongodb固定集合
- mongodb 固定集合和GridFS
- MongoDB 进阶(命令\固定集合)
- MongoDB 进阶(命令\固定集合)
- MongoDB索引与固定集合
- MongoDB固定集合的操作
- Mongodb固定集合和性能优化
- mongodb的固定集合(优化效率)
- mongoDb固定集合与性能优化
- mongodb学习(固定集合&GridFs文件系统)
- MongoDB 分组统计,固定集合(五)
- MongoDB 2.2 的 Time To Live (TTL) 集合
- MongoDB 2.2 的 Time To Live (TTL) 集合
- 固定集合
- MongoDB:5-MongoDB的固定集合(capped collection)
- mongodb固定集合(Capped Collection)和大文件管理(GridFS)
- SQL UNION跟UNION ALL的区别
- screen窗口管理器常用操作
- Java 构建二叉查找树
- IOS框架和服务
- 更简单的学习Android事件分发
- mongodb固定集合、TTL集合
- stauts ajax 返回值问题。
- 整理了一份招PHP高级工程师的面试题
- git 的fetch和pull的区别
- c++ string
- Appcan学习——tabview 静止页面左右滑动切换
- 工作中常用的linux命令
- Android studio plugins
- gulp 与 前端流程自动化