技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> MySQL --> InnoDB引擎数据表压缩特性测试

InnoDB引擎数据表压缩特性测试

浏览:1204次  出处信息

     一、前言

     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性能较高,同时又需要读大量数据的场景,适用范围有限。

建议继续学习:

  1. windows下压缩包在linux解压乱码的解决办法    (阅读:4021)
  2. 启用memcached压缩注意事项    (阅读:3945)
  3. php的echo为什么这么慢    (阅读:3882)
  4. 使用系统命令实现文件的压缩与加密    (阅读:3860)
  5. MySQL从压缩文件恢复数据    (阅读:3569)
  6. 前端性能优化之Html压缩    (阅读:3549)
  7. mod_gzip:Apache的HTTP压缩优化    (阅读:3450)
  8. 项目中对模板和js,css文件进行压缩的处理类    (阅读:3408)
  9. 为什么不压缩 HTML    (阅读:3360)
  10. 开源压缩算法Zopfli介绍    (阅读:3350)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1