mongodb3+版本以後支持zlib和snappy。html
db.createCollection( "email", {storageEngine:{wiredTiger:{configString: 'block_compressor=zlib'}}})mongodb
插入測試數據:數據庫
for (var i=0;i<20000;i++){ db.users.insert({'name':i,'age':12,'remark':'你也許會好奇,爲何對索引壓縮選項與集合的不一樣 。前綴壓縮是至關簡單的 – 值的「前綴」是將數據集中重複數據刪除。這對於某些數據集特別有效,對複合索引特別有效,如第一列與第二列的全部惟一值重複。前綴索引還提供了一個很是重要的優點優於Snappy或zlib – 能夠直接使用壓縮索引進行查詢操做。'}) }
db.email.dataSize()app
db.email.storageSize()測試
"collections" : 3,表示當前數據庫有多少個collections.能夠經過運行show collections查看當前數據庫具體有哪些collection.code
"objects" : 13,表示當前數據庫全部collection總共有多少行數據。顯示的數據是一個估計值,並非很是精確。htm
"avgObjSize" : 36,表示每行數據是大小,也是估計值,單位是bytes索引
"dataSize" : 468,表示當前數據庫全部數據的總大小,不是指佔有磁盤大小。單位是bytesrem
"storageSize" : 13312,表示當前數據庫佔有磁盤大小,單位是bytes,由於mongodb有預分配空間機制,爲了防止當有大量數據插入時對磁盤的壓力,所以會事先多分配磁盤空間。get
"numExtents" : 3,彷佛沒有什麼真實意義。我弄明白以後再詳細補充說明。
"indexes" : 1 ,表示system.indexes表數據行數。
"indexSize" : 8192,表示索引佔有磁盤大小。單位是bytes
"fileSize" : 201326592,表示當前數據庫預分配的文件大小,例如test.0,test.1,不包括test.ns。
參考:
http://t.dbdao.com/archives/new-compression-options-mongodb-30.html