1. 程式人生 > >mongodb3.0+ 版本內置數據壓縮

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

http bject 壓縮 集合 .data 表數 bytes 占用 for

mongodb3+版本之後支持zlib和snappy。

創建壓縮的集合

db.createCollection( "email", {storageEngine:{wiredTiger:{configString: ‘block_compressor=zlib‘}}})

插入測試數據:

for (var i=0;i<20000;i++){ 
db.users.insert({‘name‘:i,‘age‘:12,‘remark‘:‘你也許會好奇,為什麽對索引壓縮選項與集合的不同 。前綴壓縮是相當簡單的 – 值的“前綴”是將數據集中重復數據刪除。這對於某些數據集特別有效,對復合索引特別有效,如第一列與第二列的所有唯一值重復。前綴索引還提供了一個非常重要的優勢優於Snappy或zlib – 可以直接使用壓縮索引進行查詢操作。‘}) 
}

數據大小

db.email.dataSize()

占用磁盤大小

db.email.storageSize()

db.stats();

 "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。

參考:

http://t.dbdao.com/archives/new-compression-options-mongodb-30.html

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