db.stats()
進入mongo的shell命令模式下,db.stats() 與 db.serverStatus() 是查看當前Mongodb運行狀態的兩個重要命令。下面簡單解釋一下這兩個命令。
運行db.stats(),得到例如下面這個的結構輸出。
> db.stats();
{
"db" : "test", "collections" : 3, "objects" : 13, "avgObjSize" : 36,"dataSize" : 468, "storageSize" : 13312, "numExtents" : 3, "indexes" : 1, "indexSize" : 8192, "fileSize" : 201326592, "ok" : 1
}
爲了排版好看,我把輸出格式做了一點變動。真實輸出是每一個參數佔一行。
這個命令主要是用來查看單個數據庫的基本情況,例如本例中輸出的是test數據庫的基本情況。而之後要介紹的db.serverStatus()是介紹整個monodb實例的運行情況。下面來介紹一下各個參數
"db" : "test" ,表示當前是針對"test"這個數據庫的描述。想要查看其他數據庫,可以先運行$ use databasename(e.g $use admiin).
"collections" : 3,表示當前數據庫有多少個collections.可以通過運行show collections查看當前數據庫具體有哪些collection.
"objects" : 13,表示當前數據庫所有collection總共有多少行數據。顯示的數據是一個估計值,並不是非常精確。
"avgObjSize" : 36,表示每行數據是大小,也是估計值,單位是bytes
"dataSize" : 468,表示當前數據庫所有數據的總大小,不是指佔有磁盤大小。單位是bytes
"storageSize" : 13312,表示當前數據庫佔有磁盤大小,單位是bytes,因爲mongodb有預分配空間機制,爲了防止當有大量數據插入時對磁盤的壓力,因此會事先多分配磁盤空間。
"numExtents" : 3,似乎沒有什麼真實意義。我弄明白之後再詳細補充說明。
"indexes" : 1 ,表示system.indexes表數據行數。
"indexSize" : 8192,表示索引佔有磁盤大小。單位是bytes
"fileSize" : 201326592,表示當前數據庫預分配的文件大小,例如test.0,test.1,不包括test.ns。