采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师 您好 我现在的场景是 想定时删除一个月之前的数据 数据库大概有七八个集合 每次都要删除将近3个G左右的数据 想问老师 这么大的数据量 有什么高效的方式吗 因为我现在每次删除都非常耗时
你现在是怎么删除的呀?大概用时多久?有没有实例代码以及数据结构,提供一下
数据结构 { "_id" : ObjectId("5bcada2937edb352e5705b4f"), "DBID" : NumberLong("3752641350"), "IPADDR" : "114.115.135.118", "DB_SID" : "ora12c01", "USERNAME" : "APPUSER1", "ETL_DATE" : "2018-10-20 15:32:54", "record_id" : "136242##APPUSER1", "SQL_ID" : "6v7qak8mabkwb", "SQL_TEXT" : "select /*+ ordered full(a) full(b) use", "SQL_TEXT_DETAIL" : "select /*+ ordered full(a) full(b) use_nl(a b) */ count(*) count2 from appuser1.objectname1_s a, appuser1.objectname1_s b\n where a.owner=b.owner and a.object_name=b.object_name and a.object_type=b.object_type " } 现在我就是直接查找到就删除了 MongoHelper.remove(collection, {"ETL_DATE": {"$gte": day_start, "$lt": day_end}}) 其中MongoHelper为我自己写的封装的mongoclient 按照时间查找到 直接删除 现在跑一次全库要十几分钟
你自己封装的MongoHelper中的删除方法用的是哪个?deleteMany?remove?还是其他的方式? 对于大量的删除操作,把你想要保留的文档复制到一个新的集合然后使用 db.collection.drop() 方法删除原集合或许会更高效。
我用的是 remove 感觉老是的思路是很好的 不过 我的集合是有实时写入的需求的 写入新的集合 就需要改集合名字 这样会影响写入。。
登录后可查看更多问答,登录/注册
一次实战同时掌握Python操作MySQL,MongoDB,Redis 三大数据库使用技巧
1.4k 13
1.3k 12
3.4k 12
1.9k 11
6.1k 10
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号