時(shí)間:2024-02-14 10:20作者:下載吧人氣:22
前言
當(dāng)我們從MongoDB中刪除文檔或集合時(shí),MongoDB并不會(huì)將已經(jīng)占用了的磁盤空間釋放,它會(huì)一直維護(hù)已經(jīng)占用了磁盤空間的數(shù)據(jù)文件,盡管數(shù)據(jù)文件中可能存在大大小小的空記錄列表(empty record list)。當(dāng)客戶端程序再次插入文檔時(shí),MongoDB會(huì)從空記錄列表中分配存儲(chǔ)空間給新文檔。那么為了更加有效的使用磁盤空間,我們需要對(duì)mongodb的數(shù)據(jù)文件做碎片整理以及未使用空間的回收。思想無(wú)非兩種:
1、對(duì)原數(shù)據(jù)進(jìn)行重組
2、僅將數(shù)據(jù)復(fù)制出來(lái),形成僅數(shù)據(jù)的完整備份
以下介紹幾種常用的實(shí)施方法:
1、compact
2、db.repairDatabase()
3、secondary節(jié)點(diǎn)重同步
4、db.copyDatabase()
一、compat
官網(wǎng)對(duì)該命令的定義:對(duì)集合中的所有數(shù)據(jù)和索引進(jìn)行重寫和碎片整理。
使用方法
use yourdatabase;
db.runCommand({ compact : ‘yourCollection’ });
網(wǎng)友評(píng)論