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性能较高,同时又需要读大量数据的场景,适用范围有限。
建议继续学习:
- windows下压缩包在linux解压乱码的解决办法 (阅读:4225)
- 启用memcached压缩注意事项 (阅读:4135)
- php的echo为什么这么慢 (阅读:4109)
- 使用系统命令实现文件的压缩与加密 (阅读:4081)
- MySQL从压缩文件恢复数据 (阅读:3756)
- 前端性能优化之Html压缩 (阅读:3738)
- mod_gzip:Apache的HTTP压缩优化 (阅读:3752)
- 项目中对模板和js,css文件进行压缩的处理类 (阅读:3711)
- 为什么不压缩 HTML (阅读:3532)
- 开源压缩算法Zopfli介绍 (阅读:3543)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:yejr 来源: MySQL 中文网 -
- 标签: 压缩
- 发布时间:2012-08-30 23:59:33
- [69] IOS安全–浅谈关于IOS加固的几种方法
- [68] Twitter/微博客的学习摘要
- [63] 如何拿下简短的域名
- [62] android 开发入门
- [61] Go Reflect 性能
- [60] find命令的一点注意事项
- [58] 流程管理与用户研究
- [57] 图书馆的世界纪录
- [55] Oracle MTS模式下 进程地址与会话信
- [55] 读书笔记-壹百度:百度十年千倍的29条法则