2015-11-17 56 views
0

在Mongo中,存儲大小是預先分配的,例如,db.stats()輸出如下,mongo文檔中沒有充分使用storageSize:65536,但怎麼可能我知道可用空間可用於預先分配的storageSize?我怎麼能知道mongo數據未使用的空間

「127.0.0.1:27018」:{ 「DB」: 「測試」, 「集合」:1, 「物」:10, 「avgObjSize」:53.08618233618234, 「命令datasize」:530, 「storageSize」:65536, 「numExtents」:0, 「指標」:1, 「indexSize」:532, 「OK」:1

回答

0

如果我理解正確的答案應該是等於storageSize - 數據尺寸?

這個文件可以真正的幫助:http://blog.mongolab.com/2014/01/how-big-is-your-mongodb/

而且db.stats()的MongoDB的文件:https://docs.mongodb.org/manual/reference/command/dbStats/,在那裏你可以找到dbStats返回的每個值的含義

+0

您是如果蒙戈正確存儲引擎使用非壓縮模式。如果使用wiredTiger mongo存儲引擎,默認行爲將會被壓縮,這意味着dataSize大於storageSize,在這種情況下該如何解決? – samsak

+0

實際上你的第一個問題中缺少一些信息。 我猜你至少有mongo 3.0並配置了wiredTiger,因爲你的db.stats()不會返回關於mmapv1引擎的一些信息。 實際上,如果dataSize是由引擎壓縮的,那麼您將獲得db.stats()返回的壓縮值。你說dataSize大於storageSize,這是不正確的。未壓縮的dataSize最終可能會比storageSize更大。但是它不會發生在你的數據庫中,因爲你正在使用wiredTiger工具,所以真正的問題是什麼? – Metux