據我所知,MongoDB的存儲大小應始終大於數據大小.但是,升級到Mongo 3.0並使用WiredTiger后,我開始看到數據大小大於存儲大小.
這是來自其中一個數據庫:
{
"db" : "Results", "collections" : NumberInt(1), "objects" : NumberInt(251816), "avgObjSize" : 804.4109548241573, "dataSize" : NumberInt(202563549), "storageSize" : NumberInt(53755904), "numExtents" : NumberInt(0), "indexes" : NumberInt(5), "indexSize" : NumberInt(41013248), "ok" : NumberInt(1) }
注意,202563549>到目前為止53755904.我很困惑這是怎么回事.現在在Mongo 3.0中讀取db.stats()的方法有何不同?
storageSize指標等於數據庫中所有數據擴展區的大小(以字節為單位).如果沒有壓縮,則此數字大於dataSize,因為它包含尚未使用的空間(在數據范圍內)和由范圍內已刪除或移動的文檔騰出的空間.但是,在使用WiredTiger存儲引擎時,數據會在磁盤上壓縮,因此小於dataSize.