英语培训学校网站建设多少钱,营销型企业网站建设的功能,微信开发者平台教程,去除wordpress活动及新闻mongodb删除数据后不会直接释放内存空间#xff0c;是因为使用了一种称为“延迟删除”的策略。这意味着当一个文档被删除时#xff0c;它仍然会占用一定的内存空间#xff0c;直到这个空间被垃圾回收器#xff08;Garbage Collector#xff09;回收。 删除数据操作前建议先… mongodb删除数据后不会直接释放内存空间是因为使用了一种称为“延迟删除”的策略。这意味着当一个文档被删除时它仍然会占用一定的内存空间直到这个空间被垃圾回收器Garbage Collector回收。 删除数据操作前建议先评估你的操作会有什么样的影响。在生产上操作的时候需要评估你删除的数据有多大需要用多长时间从而可以制定相应的实施和回退方案。
举个例子db是busi我要删除createDate小于2023-07-01的数据根据这个字段查询数据量大概有多少或者可以根据主键_id来查询。
-- 查询数据
db.busi.find({createDate:{$gt : 2023-07-01}}).count(); db.busi.find({_id:{$gt: 123456}}).count() db.busi.find({_id:{$lt: 123456}}).count()
如果符合预期的操作方案则进行后面的删除
注意删除数据只能在主节点进行操作
-- 根据日期删除数据时间较长 db.busi.remove({createDate:{$gt : 2023-07-01}})
删除过程中也可以直接查询当前的数据量 -- 根据条件查询当前的数据总量 db.busi.find({_id: {$gt: 123456}}).count(); db.busi.find({_id: {$lt: 123456}}).count(); -- 该语句执行较长 db.busi.find({createDate: {$lt: 2023-07-01}}).count();
删除完成后我们可以观察服务器对应的数据目录磁盘空间是没有任何变化的则需要执行下面的命令
注意释放空间只是释放了当前节点的空间如果有多个节点还需要在多个节点进行操作 -- 释放空间需要几分钟 db.runCommand({compact: busi, force:true}); -- 实时查询当前空间大小 db.busi.stats().storageSize;