mysql数据库表空间压缩,InnoDB引擎数据表压缩特性测试

一、前言

Innodb Plugin引擎开始引入多种格式的行存储机制,目前支持:Antelope、Barracuda两种。其中Barracuda兼容Antelope格式。

另外,Innodb plugin还支持行数据压缩特性,不过前提是采用Barracuda行存储格式。

表空间启用压缩的前提是innodb表空间文件存储格式修改成:Barracuda,需要修改2个选项:

innodb_file_format = "Barracuda"

innodb_file_format_max = "Barracuda"

下面是对比测试结果

二、表空间压缩比

1. 某项目数据表压缩比

2.1 数据表tabA

压缩之前

-rw-rw---- 1 mysql mysql 19038208 Mar 21 13:59 tabA.ibd(18.1G)

压缩之后

-rw-rw---- 1 mysql mysql 9.2G Mar 21 19:11 tabA.ibd

相差:12414976 ~= 12124 MB ~= 11.83 Gb,节约49.32%

2.2 数据表tabB

压缩前

-rw-rw---- 1 mysql mysql 1.1G Mar 21 13:51 tabB.ibd

压缩后

-rw-rw---- 1 mysql mysql 404M Mar 28 09:59 tabB.ibd

相差:1.1G - 404Mb ~= 696MB,节约63.27%

2.3 数据表tabC

压缩前

-rw-rw---- 1 mysql mysql 16195584 Mar 21 14:25 tabC.ibd(15.4G)

压缩后

-rw-rw---- 1 mysql mysql 8130560 Mar 28 10:49 tabC.ibd(7.7G)

相差:16195584-8130560 = 8065024 ~= 7G,节约49.79%

2. tpcc测试库

数据表 压缩前(单位:字节) 压缩后(单位:字节) 减少字节数 节约比

warehoused 192 128 64 33.33%

districtd 9216 5120 4096 44.44%

itemd 17408 11264 6144 35.29%

new_ordersd 397312 155648 241664 60.82%

ordersd 2957312 786432 2170880 73.41%

historyd 4694016 1347584 3346432 71.29%

customerd 20619264 12881920 7737344 37.52%

stockd 35737600 23801856 11935744 33.40%

order_lined 43991040 15740928 28250112 64.22%

全库 109603176 59028260 50574916 46.14%

三、tpcc对比测试

1. 非压缩表

4212.650 TpmC

4203.600 TpmC

2. 压缩表

428.983 TpmC

663.017 TpmC

707.883 TpmC

707.183 TpmC

四、测试导出

1. 非压缩

time mysqldump tpcc1000 | gzip > tpcc1000.sql.gz

real 148m22.614s

user 148m56.915s

sys 3m33.802s

2. 压缩表

time mysqldump tpcc1000_compress | gzip > tpcc1000_compress.sql.gz

real 129m42.541s

user 149m12.407s

sys 3m44.835s

五、测试导入

1. 非压缩表

1.1 并发导入

开始:2012-04-01 23:43:03.777173866 +0800

结束:2012-04-02 03:21:05.003590866 +0800

耗时:03:38:02

2. 压缩表

1.1 并发导入

开始: 2012-04-01 23:40:34.289173866 +0800

结束:2012-04-03 11:06:44.740992866 +0800

耗时:35:26:10

六、结论

从测试结果来看,InnoDB引擎的压缩特色效果不错,压缩完后快和MyISAM引擎差不多了。

不过压缩后事务并发性能下降非常严重,从这个角度来看,它适合用于对压缩比较高、但对并发事务要求不高的场景,例如一些CPU性能较高,同时又需要读大量数据的场景,适用范围有限。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值