我屮艸芔茻,mongo居然可以自动删除数据
1、需求
最近在接入其他部门的数据,但是因为数据量太大,所以导致mongo中的数据暴涨,所以需要定期删除数据。
2、方案
- 方案1: 在机器上创建cron 定时任务,删除数据,
缺点:放在机器上不好管理
- 方案2: 在程序中起一个定时器删除数据
缺点:需要自己调job,然后还需要拉取所有的数据进行读取计算
- 方案3:使用mongodb 自带的TTL过期功能,毫无疑问,选择这个
3、Mongo TTL功能
1、功能实现
- 需要在文档中增加一个date 字段
- 创建一个单列索引,并且设置过期时间
2、举个例子
创建索引
db.log_events.createIndex( { "createdAt": 1 }, { expireAfterSeconds: 3600 } )
插入数据
db.log_events.insert( {"createdAt": new Date(),"logEvent": 2,"logMessage": "Success!"
} )
3、原理解析
mongo也没有什么魔法,下面一起看下
1.可以看到mongo在date字段上创建了索引,这样在操作删除的时候只要读取索引数据就可以判断了
2.索引的过期时间是秒,也就是说在创建的索引上增加过期时间,如果超过当前时间就会删除,这个符合逻辑,也是这么做的,合理
3.mongo 在后台启动了一个线程,在后台线程中读取索引中的值并从集合中删除过期的数据
4.后台线程每60s运行一次,所以数据不会立即删除
4、注意点
_id
字段不支持TTL索引- 某个字段已经存在非TTL单字段索引,则无法在同一字段上创建TTL索引
- 如果文档中的索引字段不是date或包含日期值的数组,文档将不会过期。
- 如果文档不包含索引字段,则文档将不会过期
总结
在开始的时候还是走了一些弯路,主要是不知道要在date字段上建立索引,并且不知道60s 的运行间隔,导致研究了老半天,就是看不到数据删除。
不过不重要,也算是学习了
我屮艸芔茻,mongo居然可以自动删除数据相关推荐
- win10开始菜单打不开了,我屮艸芔茻
妈蛋的, 安装了电脑管家的"经典开始菜单"之后, 感觉不好用,卸载了. 然后开始菜单打不开了, wifi连接按钮打不开了. 音量按钮打不开了. 我屮艸芔茻, 网上有千奇百怪的答案, ...
- 我屮艸芔茻!!!什么情况,就刚才,百年之功废于一旦!!博客园,你TM想吃翔了吧!...
就在刚才,写的东西没保存的了,网站挂了... 博客园网站挂了,我写的完蛋了...我靠!!! @博客园技术团队 你给个说法吧 博客园 ...这是我碰到的第二次了--擦 转载于:https://w ...
- mysql数据库,当数据类型是float时,查询居然查询不出数据来
mysql数据库,当数据类型是float时,查询居然查询不出数据来,类似如下: 以后mysql数据库不用float类型,而double类型可以查得出来. 转载于:https://www.cnblogs ...
- 秀米svg点击显示另一张图_这个svg也太好玩了吧,居然可以自动展开全文!
原标题:这个svg也太好玩了吧,居然可以自动展开全文! 胖友们大家好呀,我是三儿 三儿发现,胖友们都比较喜欢自动变换和展开样式的svg.自动变换能够省掉点击步骤,展开svg可以将 隐藏的内容展开,两个 ...
- mongo如何删除数据后相应的删除空间和内存占用
mongo如何删除数据后相应的删除空间和内存占用 Q: mongo数据变大之后,删除不需要的表和数据之后,内存和磁盘空间都没有释放. A: 这是mongo机制,只有删除数据库时才会回收相应的空间,否则 ...
- mongo忘记密码并删除用户
2019独角兽企业重金招聘Python工程师标准>>> vim /etc/mongodb.conf # 修改 mongodb 配置,将 auth = true 注释 ...
- 阿里言:出乎意料,“字节跳动”居然是这么做数据迁移的
目标 附面试思维导图: 能够描述项目数据迁移的方案 了解hbase的特点 能够熟悉数据迁移中的数据包装和转换 能够完成文章数据的全量和增量迁移 能够完成热点文章数据的迁移 1 为什么需要自动同步 因为 ...
- OpenAI居然能自动写论文?导师直言我都犯难了...
最近两个月以来,刷屏网络技术圈的莫过于chatGPT 莫属了!闲暇之余,自己也去注册了一个账号来看看它的魔力,毕竟也有很多博主抵挡不住其中的诱惑,好吧,我也抵挡不住,也就去开了openAI实验了一番, ...
- 元旦快乐!今天我居然登上了数据派头条!
从今天起,我们告别了2017,迎来崭新的2018年.回首这一年,数据派的成长离不开志愿者和粉丝们一直以来的支持和陪伴,点点认识了很多新朋友也重逢了很多老朋友,每次我们的讲座活动,摄影师也都会记录下演讲 ...
最新文章
- apache虚拟机的开启iis apache共存 apache 的设置(报错 找不到 Not found)
- linux 内核参数 杨,Linux 内核参数
- 统计学习方法第四章朴素贝叶斯法-李航
- 计算机网络实验3:网络设备基本配置
- 洛谷 P3243 【[HNOI2015]菜肴制作】
- Debian8.3.0下安装Odoo8.0步骤
- 腾讯2013实习生笔试题+答案1-5aadaa 6-10adbcc 11-15 acacc16-20 bbddc
- 关于类模版迭代器提出时的错误
- java中return finally_Java中return和finally到底哪个先执行
- C#之获取系统cpu
- mysql创建触发器怎么保存_如何创建使用mysql触发器?
- python获取指定扩展名的文件_用Python提取文件夹下的特定扩展名的文件
- C++ 一维高斯积分的实现
- 前端 配色网站 自用 免费 颜色很全
- SDI科普--- SD-SDI/HD-SDI/3G-SDI/12G-SDI
- PC比电脑好玩的秘密是什么?答案就是因为有这些神奇的网站!
- 民法学习入门的“听说读写”之道
- 大类资产配置(一)均值方差模型MOV
- oracle故障一例,Oracle 10g异机恢复后EM无法启动故障处理一例
- Android 无需 root 卸载系统应用
热门文章
- V-REP笔记:重力加速度的修改
- X-Window结构分析与应用
- 【git生成私钥】git@gitlab.dfc.com: Permission denied (publickey).问题解决
- PS如何修改图片上的文字
- Javaweb城市公交查询系统的设计与实现
- Windows 下安装MIMIC-IV
- sdut 2055来淄博旅游
- vs2017配置linux连接器失败,Xilinx HLx 2017.1与VS 2017兼容问题解决的方法盘点
- 对 BFC 规范(块级格式化上下文:block formatting context)的理解?
- HANA DB重置SYSTEM密码