mongodb3.0+ 版本內置數據壓縮

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()測試

db.stats();

 

 "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

相關文章
相關標籤/搜索