TTL 集合支持失效时间设置,当超过指定时间后,集合自动清除超时的文档,那温度是怎么被删除的呢?求大神给讲解一下。
给个小参考
首先我们创建一个索引并设置 10 秒钟后失效:
db.ttl_collection.ensureIndex( { "Date": 1 }, { expireAfterSeconds: 10 } )
然后插入文档:
db.ttl_collection.insert({"Date" : new Date()})
因为我们想象该文档会在 10 秒后删除,可是我在我的电脑上测试多次,结果却不太一样。有些时候 mongod 在 18 秒后删除,有些时候是 40 秒。为什么会这样呢?我们已经告诉 MongoDB 要在 10 秒后删除,可事实上却不是如此。
例如,这一次是 45 秒中后才删除:
因为 mongod 后台任务每分钟检查一次过期文档,因此在时间的处理上总有一定的差异,但这个差异不会超过 1 分钟,这也取决于 MongoDB 实例当前的负荷情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。