MongoDB空間整理

來源:互聯網
上載者:User

標籤:

測試環境:192.168.1.55,單機
資料量: 4千萬左右。
測試:db.repaireDatabase效果
db.compact 效果
通過stats命令擷取該資料庫的相關資訊:
db.stats() { "db" : "test",
"collections" : 7, --collection 數量 
"objects" : 28, --對象數量 
"avgObjSize" : 50.57142857142857, --對象平均大小 
"dataSize" : 1416, --資料大小 
"storageSize" : 31744, --資料大小(含預分配空間) 
"numExtents" : 7, --事件數目量 
"indexes" : 7, --索引數量 
"indexSize" : 57344, --索引大小 
"fileSize" : 50331648, --檔案大小 
"ok" : 1 --本次取stats 是否正常 
} >

1. 未刪資料前

show dbs

aa 0.000GB
admin 0.000GB
gwgps 3.609GB
local 0.000GB

db.stats()

{
"db" : "gwgps",
"collections" : 1,
"objects" : 41345131,
"avgObjSize" : 554.8684502656431,
"dataSize" : 22941108764,
"storageSize" : 3081945088,
"numExtents" : 0,
"indexes" : 3,
"indexSize" : 792702976,
"ok" : 1
}

2.程式刪除N條後

show dbs

aa 0.000GB
admin 0.000GB
gwgps 3.610GB
local 0.000GB

db.stats()

{
"db" : "gwgps",
"collections" : 1,
"objects" : 41344233,
"avgObjSize" : 554.8684691284514,
"dataSize" : 22940611272,
"storageSize" : 3081945088,
"numExtents" : 0,
"indexes" : 3,
"indexSize" : 794288128,
"ok" : 1
}

3.repaireDatabase之後

db.repairDatabase()

{ "ok" : 1 }

show dbs

aa 0.000GB
admin 0.000GB
gwgps 3.609GB
local 0.000GB

db.stats()

{
"db" : "gwgps",
"collections" : 1,
"objects" : 41344233,
"avgObjSize" : 554.8684691284514,
"dataSize" : 22940611272,
"storageSize" : 3081945088,
"numExtents" : 0,
"indexes" : 3,
"indexSize" : 792682496,
"ok" : 1
}

4.compact命令
> db.runCommand({compact:‘location‘}) { "ok" : 1 }

show dbs

aa 0.000GB
admin 0.000GB
gwgps 3.612GB
local 0.000GB

db.stats()

{
"db" : "gwgps",
"collections" : 1,
"objects" : 41337719,
"avgObjSize" : 554.8686059818637,
"dataSize" : 22937002516,
"storageSize" : 3081945088,
"numExtents" : 0,
"indexes" : 3,
"indexSize" : 795889664,
"ok" : 1
}

經過重複迴圈多次刪除之後,用repaireDatabase,show dbs, du -sh命令查看空間,暫得到如下結論:
1. 使用db.repairDatabase時候建議停止資料庫的讀寫,需要大於等於資料差不多的空間,否則可能無法執行該命令。
2. 4千萬資料repairDatabase需要大約10分鐘左右,40億,400億,4000億效果待測。
3. storageSize 該值未減少,因為包括預分配空間,有其積極的意義。
4. 實際空間減少的是索引所佔的空間。
5. 對空間可控可以禁用日誌或日誌輪詢複寫,但不推薦。
6. 禁止預分配空間或預設定分配空間(啟動資料庫時可以選擇noprealloc參數),但影響插入效率。
7. 推薦合適時機定時壓縮,採用compact壓縮指定collection,或repairDatabase壓縮資料庫。

MongoDB空間整理

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.