mongodb3.0+ 版本内置数据压缩

Posted 领域见识决定专业高度

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongodb3.0+ 版本内置数据压缩相关的知识,希望对你有一定的参考价值。

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+ 版本内置数据压缩的主要内容,如果未能解决你的问题,请参考以下文章

mongovue1.6.9不能显示mongodb3.0的数据了嘛?

《转》CentOS7 安装MongoDB 3.0server (3.0的优势)

MongoDB 如何实现备份压缩

MongoDB学习总结 —— 安全认证

MongoDB入门一

(转)MongoDB 3.0 WT引擎参考配置文件