优化系列 | InnoDB引擎数据表压缩特性测试

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

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



本文转自叶金荣51CTO博客,原文链接:http://blog.51cto.com/imysql/1879730,如需转载请自行联系原作者

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
存储 关系型数据库 MySQL
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
MySQL数据库进阶第六篇(InnoDB引擎架构,事务原理,MVCC)
|
18天前
|
测试技术
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
17 2
|
2月前
|
存储 SQL 关系型数据库
(十三)MySQL引擎篇:半道出家的InnoDB为何能替换官方的MyISAM?
MySQL是一款支持拔插式引擎的数据库,在开发过程中你可以根据业务特性,从支持的诸多引擎中选择一款适合的,例如MyISAM、InnoDB、Merge、Memory(HEAP)、BDB(BerkeleyDB)、Example、Federated、Archive、CSV、Blackhole.....
|
2月前
|
测试技术 UED 存储
SLS Prometheus存储问题之在使用内置降采样时,SLS自动选择适配的指标库该如何解决
SLS Prometheus存储问题之在使用内置降采样时,SLS自动选择适配的指标库该如何解决
|
2月前
|
数据采集 监控 数据管理
LabVIEW幅频特性测试系统
LabVIEW幅频特性测试系统
41 6
|
3月前
|
存储 关系型数据库 分布式数据库
PolarDB产品使用问题之如何用InnoDB引擎创建Federated表
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
33 1
|
2月前
|
存储 关系型数据库 MySQL
InnoDB 引擎技术文档
【7月更文挑战第6天】InnoDB 是 MySQL 数据库中最常用的关系型数据库存储引擎,自 MySQL 5.5 版本以来成为默认存储引擎。它支持事务处理、行级锁定、外键约束以及崩溃恢复能力,特别适合于高并发、高可靠性的应用场景。InnoDB 引擎还提供了对大容量数据的支持,通过聚簇索引实现数据和索引的紧密集成,优化了查询性能。
43 0
|
2月前
|
数据采集 数据可视化 数据管理
LabVIEW开发实验室超导体电流特性测试系统
LabVIEW开发实验室超导体电流特性测试系统
16 0
|
3月前
|
存储 关系型数据库 MySQL
mysql的InnoDB引擎实现ACID特性的原理
mysql的InnoDB引擎实现ACID特性的原理
|
3月前
|
存储 运维 关系型数据库
PolarDB产品使用问题之如何使用innodb和x-engine混合引擎
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。