暂无图片
mongo删除数据回收空间问题
我来答
分享
西麦子
2024-02-04
mongo删除数据回收空间问题
暂无图片 10M

有一个collection因为程序异常,写入大量不需要的数据,以后也不会再访问这张表,怎么释放空间呢?

delete不释放空间,不考虑新建表insert的方法,还有什么办法呢?compact有人用过吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
雪狼sunny

如果你想释放MongoDB中一个集合(collection)所占用的空间,可以考虑使用MongoDB的compact操作。compact操作会对集合进行整理,删除未使用的空间并重新组织数据,从而减小集合的大小。该操作可以通过以下步骤执行:

  1. 进入MongoDB的命令行界面或使用MongoDB客户端。
  2. 切换到目标数据库:use your_database_name(将your_database_name替换为实际的数据库名称)。
  3. 执行compact命令来压缩指定的集合:db.your_collection_name.compact()(将your_collection_name替换为实际的集合名称)。
  4. 等待compact操作完成。这可能需要一些时间,具体时间取决于集合的大小和系统负载。

请注意,compact操作可能会导致一些性能开销,并且在执行期间可能会对系统产生一些压力。因此,在执行compact操作之前,建议在非高峰时段执行,并确保备份重要数据。

另外,如果你不再需要这个集合,并且确定其中的数据都是不需要的,你也可以考虑直接删除整个集合。在执行删除之前,请务必备份重要数据,并确保操作不会影响其他业务。

无论使用哪种方法,请在执行之前进行测试,并确保在生产环境中小心操作。

暂无图片 评论
暂无图片 有用 4
打赏 0
暂无图片
回答交流
Markdown


请输入正文
提交
相关推荐
有用过ops manager吗?它能监控单机多实例吗?
回答 3
参考如下
mongo SECONDARY节点的日志中有大量的 serverStatus was very slow
回答 3
这个跟防火墙有没有关系?从节点的主机跟主节点通信,要经过两个防火墙。
有大佬知道怎么查看mongo一个集合下所有的key吗?
回答 1
https://stackoverflow.com/questions/2298870/mongodbgetnamesofallkeysincollectionmrdb.runCommand({“ma
Error: No space left on device ,内存 磁盘 Inodes资源 充足, 要检查什么?
回答 1
已采纳
有些文件删除时还被其它进程占用,此时文件并未真正删除,只是标记为deleted,只有进程结束后才会将文件真正从磁盘中清除。试试通过lsop命令查看被进程占用中的文件。
MongoDB从库宕机问题
回答 2
已采纳
mongodb副本集是基于全量oplog增量的。couldnotfindmember说明无法找到增量点。解决方式:从副本节点剔除问题节点之后,初始化这个问题节点,再从新添加,这样会自动sync全量增量
在本地项目跑MongoDB10几秒,线上服务跑却要十几秒,这是什么原因?
回答 1
mongodb问题排查。执行语句的explain,还有cpu,io等情况查看分析才行
Mongo DB:有个字段加了索引,但是查询条件包含两个字段,MongoDB会不会先按第一个字段的索引查?
回答 1
已采纳
会的
mongo书籍
回答 1
1、《MongoDB权威指南第3版》2、官方文档
mongodb可视化管理工具那个比较好用,求推荐
回答 3
已采纳
⭐️推荐使用免费开源的Robo3T!MongoDBRobo3T下载地址:https://robomongo.org/downloadNavicatforMongoDB官网下载地址:http://www
mongodb 控制用户登入
回答 8
已采纳
先创建一个nologin的角色,然后创建用户的时候将这个角色指定给他就行了