我有一個大約8G的分貝。 我沒有複製數據庫來生成副本。 然後我使用js控制檯修剪了該副本。 然後我跑了一個reapir數據庫,副本仍然是原來的確切大小。db.repairDatabase()沒有減少數據庫的大小
回答
很可能這意味着您沒有釋放足夠的空間將整個範圍或文件返回到操作系統。想象一下,你有5個2GB文件(MongoDB在前幾個小文件後以2GB的增量預先分配文件),現在想象你在這個數據庫中有8GB的數據。最後一個文件將一直爲空,因爲MongoDB在需要它之前預先分配一個文件。所以8GB的文件佔用4個2GB的文件,一個2GB的文件是空的。
現在你做一些修剪 - 甚至1.8GB的刪除東西。您可以在一組新的數據庫文件中儘可能緊湊地運行修復每個記錄的repairDB。除了它仍然需要相同的5個2GB文件,因爲第四個文件有100MB的數據,最後一個文件必須是空的。
您可以查看db.stats()的輸出以查看將數據大小與存儲大小進行比較,但事實是,與分配的文件大小相比,這些數字相對較小,這可能是爲什麼你正在看到你所看到的。
謝謝!我正在使用show dbs來給我大小。我認爲這將是數據的大小而不是保留文件的大小。有沒有辦法確定數據的確切大小? –
@DouglasFerguson正如她所說,'stats()'會告訴你 – Sammaye
顯示dbs的大小已增加appstore \t 7.9501953125GB –
- 1. 減少AWS RDS數據庫大小
- 2. 減少SQL Server數據庫大小
- 3. 有沒有辦法減少Sybase數據庫的轉儲文件大小?
- 4. 減少Git倉庫大小
- 5. 調整大小後圖像的文件大小沒有減少
- 6. 減少ASP.NET菜單控件大小(沒有第三方庫)
- 7. 減少laravel中的數據庫查詢大小
- 8. 如何減少此數據庫的大小?
- 9. 如何減少Firebase中的數據庫大小?
- 10. 減少境界數據庫航運的大小與應用
- 11. 減少HtmlUnit庫的jar大小
- 12. 減少TimePicker大小
- 13. 減少BitmapDrawable大小
- 14. 刪除列不會減少數據庫大小
- 15. PostgreSQL drop table命令不會減少數據庫大小
- 16. 刪除記錄不會減少數據庫大小 - MyISAM
- 17. 在Heroku上備份/加載後PostgreSQL數據庫大小減少
- 18. 減少SQL Server數據庫備份大小
- 19. 減少數據庫的Rails
- 20. 表的數據長度沒有減少
- 21. Neo4j的數據庫大小不會減少在所有節點刪除
- 22. Docker - 減少拉的大小
- 23. 減少dll的大小vC++
- 24. 減少紋理的大小
- 25. Solr大小的減少
- 26. 減少listitem的大小?
- 27. 零大小數組到最大減少操作數沒有標識
- 28. 減少數據庫往返
- 29. 減少數據庫調用
- 30. 減少數據庫連接
你是什麼意思修剪?我們需要更多的信息,可能是'stats()'? – Sammaye
我的意思是我刪除了大量的數據。根據統計數據庫是隻有2G(dataSize = 2G) –
你能告訴我們這個輸出,直接從控制檯?這很奇怪,因爲即使使用預分配,數據庫應該更像磁盤大小的4GB。同時向我們展示'show dbs'輸出。嘗試'mongod'重新啓動,並告訴我們是否有任何變化,我認爲這些數字可能會保存在RAM – Sammaye