我正在使用MongoDB 3.6,我的收藏中有大量的碎片。一个集合上的300+ GB。WiredTiger是存储引擎。
我知道这对操作系统不好,浪费了很多空间。如果我们使用MMAP引擎,这也会影响内存。但我不知道这些碎片是如何影响WiredTiger的?
发布于 2019-11-27 01:30:10
如果您有大量的空间可供重用,那么获取数据的效率就会降低。但是,如果您继续在集合中插入或更新文档,则可以重用该空间。
如果您删除了大量的数据(听起来像是您的集合中的~300 by ),您可以通过以下两种方法来回收空间:
compact命令 (重要警告:这将阻止运行操作的数据库的所有操作)对于这两种方法,我都会使用滚动维修来维护可用性。
重新整合将是最有效的选择。运行compact命令的风险更大,因为在脱机运行compact时,复制集成员可能会失效(并且需要重新同步);此操作也可能无法释放与resync相同的磁盘空间,需要在每个集合中运行。
https://dba.stackexchange.com/questions/254054
复制相似问题