MongoDB TTL索引的实例详解
TTL索引是一种特殊类型的单字段索引,主要用于当满足某个特定时间之后自动删除相应的文档。也就是说集合中的文档有一定的有效期,超过有效期的文档就会失效,会被移除。也即是数据会过期。过期的数据无需保留,这种情形适用于如机器生成的事件数据,日志和会话信息等等。本文主要描述TTL索引的使用。
一、TTL索引
创建方法
db.collection.createIndex(keys, options)
options:
expireAfterSeconds 指定多少秒或者包含日期值的数组
创建示例
db.eventlog.createIndex( { "lastModifiedDate": 1 }, { expireAfterSeconds: 3600 } )
何时失效
在指定的时间达到后失效,也即是索引字段的值加上一个特定的秒数之后
如果索引字段是一个数组,即索引字段上存在着多个日期值,此时MongoDB取最小值加上失效时间(lowest())
对于非日期字段或不包含日期数组的索引字段,文档不会失效
对于不包含索引字段的文档,文档不会失效
删除操作
mongod的一个后台线程会读取索引的值并将失效的文档从集合移除
当TTL线程被激活后,可以从db.currentOp()或者从profile观察到删除操作
何时删除
当基于后台方式创建索引时,TTL线程能够在索引创建期间开始删除失效文档
当基于前台方式创建索引时,TTL线程在索引创建完成后开始删除失效文档
TTL索引的删除不能完全保证失效期后一定删除,存在一定延迟(取决于mongod的工作负载)
TTL删除文档后台线程每60s移除失效文档(因此可能存在已过失效期,文档还在的情形)
在副本集环境中,TTL后台线程仅仅在主副本上工作,辅助副本上由复制操作实现
在使用TTL索引查询时,与使用非TTL索引一样
一些限制
不能基于已经存在索引的字段创建TTL索引以及非日期字段创建TTL索引,文档不会失效
TTL索引不支持基于多个字段的复合索引
不支持定长集合
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1148
183.71 KB下载数642
644.84 KB下载数2756
相关文章
发现更多好内容- 如何在 Java 中实现对正方形的缩放操作?(如何在Java中对正方形进行缩放操作)
- 如何正确使用 Java 的 join 方法?(java join方法怎么使用)
- Java 中 DecimalFormat 在哪些场景下使用较为合适?(Java DecimalFormat在哪里使用合适)
- 如何确保Redis客户端的安全性:实用技巧与最佳实践
- 在 JavaScript 中如何使用 parentNode?(javascript中的parentNode怎么用)
- 如何高效编码 Java Supplier 接口?(java supplier接口的高效编码技巧)
- 如何进行 Java NoSQL 查询优化?(java nosql查询优化怎样进行)
- Java 中 `equals()` 的核心究竟是什么?(java eques的核心是什么)
- Java代理模式的优缺点分别有哪些?(Java代理模式有哪些优缺点)
- 2024下半年北京软考成绩复查时间及流程
猜你喜欢
AI推送时光机MongoDB TTL索引的实例详解
数据库2024-04-02
【MongoDB学习笔记27】MongoDB的TTL索引
数据库2024-04-02
MongoDB慢查询与索引实例详解
数据库2022-07-29
MongoDB中的定时索引示例详解
数据库2024-04-02
MongoDB索引机制详解
数据库2023-04-23
MongoDB自动删除过期数据的方法(TTL索引)
数据库2024-04-02
MongoDB索引概念及使用详解
数据库2024-04-02
MongoDB数据库索引用法详解
数据库2022-07-08
MongoDB中索引的示例分析
数据库2024-04-02
Mongodb设置TTL索引自动清除数据与过期数据的方法
数据库2024-04-02
PythonNumPy数组索引的示例详解
数据库2023-01-18
MongoDB索引管理的示例分析
数据库2024-04-02
node.js操作MongoDB的实例详解
数据库2022-06-04
MySQL索引最左匹配原则实例详解
数据库2024-04-02
Mysql索引分类及其使用实例详解
数据库2022-07-19
Python实现Tracert追踪TTL值的方法详解
数据库2024-04-02
MongoDB 查询操作的实例详解
数据库2024-04-02
MySQL的索引详解
数据库2024-04-02
ElasticSearch之索引模板滚动索引实现详解
数据库2023-05-16
咦!没有更多了?去看看其它编程学习网 内容吧