日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

云數據庫MongoDB版釋放磁盤空間

本文介紹云數據庫MongoDB版釋放磁盤空間的方法。

背景信息

MongoDB3.2版本開始,使用WiredTiger作為默認的存儲引擎。云數據庫MongoDB數據都配置了storage.directoryPerDB:true 參數,于是每個數據庫以獨立文件夾的形式存儲在磁盤上,而數據集合都是對應數據庫文件夾下獨立的文件。storage.directoryPerDB:true 參數的更多信息,請參見storage.directoryPerDB

操作步驟

1.檢查是否存在廢棄的索引、集合或者數據庫,然后使用dropIndexesdropdropDatabase命令刪除對應的索引、集合或者數據,該類命令執行后,會立即將對應的文件刪除,從而達到釋放磁盤空間的目的。

2.檢查是否存在不需要的文檔,然后使用delete命令,刪除對應的文檔。和MySQL類似,MongoDB的文檔刪除也可以看作是標記刪除,只是將對應的一小塊存儲空間標記為空閑,等待被重用,因此刪除文檔命令,不能立即釋放磁盤空間,如果想要立即釋放這部分空閑空間,請查看步驟3。

3.檢查集合是否存在大量的空閑空間,通過collStats命令,比較StorageSizefreeStorageSize這兩個字段,然后使用compact命令回收空閑的物理空間,具體操作請參見回收磁盤碎片以提升磁盤利用率

說明
  • compact命令,需要在每個節點上分別執行。

  • MongoDB 4.4之前的版本,執行compact命令時,會阻塞其他所有的操作,請謹慎操作。

  • 使用cursor.forEach命令,將文檔全部復制到新的集合,然后重命名的方法也能達到釋放磁盤空間的目的。該方法僅適用于離線場景。