苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 8305|回复: 5

[MongoDB] 被mongodb数据库的RemoveAll()方法坑到了!!!

[复制链接]
发表于 2018-12-3 09:28:56 | 显示全部楼层 |阅读模式
被mongodb数据库的RemoveAll()方法坑到了!!!

大家围观看我是怎么被坑的

需求

    今天因为业务调整需要将Mongodb数据库中的一个集合清空,并 安新的数据格式重新导入数据,但由于有索引文件,而索引巨大,不想删除,想着直接把数据删除了,然后再慢慢导进来,这样索引可以得到保留,数据也不算多,也就300W上下

操作

      我执行了命令
[C#] 纯文本查看 复制代码
coll.RemoveAll();


后果

    结果,结果, 是在删除,但是是以每秒100条不到的速度删除,我了个去,这样下去,得多长时间。8.3小时左右。这是要到下班的节奏

解决办法


    其实最主要还是我大意了,想多了,
应该是先直接把集合给删除掉,然后再导,可以先导100条数据时,开始建立索引,这样速度不会慢,也可以实现我上面的功能。

第一步我们先去Mongodb,VUE中直接断开执行,这也是一个技巧,很多人不知道通过工具可以直接将正在执行的操作给结束掉。
如果真要等8个小时,那就太难坎了
QQ截图20181203092307.png

如上图直接单击kill就行了。
然后我们可以通过 直接dorp命令直接删除集合,这样我测试只需要10秒不到,加上建立索引的时候也不会超过半个小时。




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
 楼主| 发表于 2018-12-3 09:48:52 | 显示全部楼层
还有一种说法就是直接使用 Remove方法,条件为空,个人感觉应该是差不多的。
发表于 2018-12-3 09:59:50 | 显示全部楼层
之前处理过, 直接把表给删除了, 然后添加一条数据,索引建立完成后, 再执行大批量的导入
发表于 2018-12-3 11:24:16 | 显示全部楼层
先索引 后导入   强烈支持楼主ing……
发表于 2018-12-3 14:04:37 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-3 17:56:27 | 显示全部楼层
我只是路过打酱油的。
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-25 22:21

© 2014-2021

快速回复 返回顶部 返回列表