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

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

一、前言
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,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
69
分享
相关文章
都说InnoDB好,那还要不要使用Memory引擎?
【11月更文挑战第16天】本文介绍了 MySQL 中 InnoDB 和 Memory 两种存储引擎的特点及适用场景。InnoDB 支持事务、外键约束,数据持久性强,适合 OLTP 场景;而 Memory 引擎数据存储于内存,读写速度快但易失,适用于临时数据或缓存。选择时需考虑性能、数据持久性、一致性和完整性需求以及应用场景的临时性和可恢复性。
166 6
MySQL底层概述—5.InnoDB参数优化
本文介绍了MySQL数据库中与内存、日志和IO线程相关的参数优化,旨在提升数据库性能。主要内容包括: 1. 内存相关参数优化:缓冲池内存大小配置、配置多个Buffer Pool实例、Chunk大小配置、InnoDB缓存性能评估、Page管理相关参数、Change Buffer相关参数优化。 2. 日志相关参数优化:日志缓冲区配置、日志文件参数优化。 3. IO线程相关参数优化: 查询缓存参数、脏页刷盘参数、LRU链表参数、脏页刷盘相关参数。
121 12
MySQL底层概述—5.InnoDB参数优化
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MarS 是微软亚洲研究院推出的金融市场模拟预测引擎,基于生成型基础模型 LMM,支持无风险环境下的交易策略测试、风险管理和市场分析。
133 8
MarS:微软开源金融市场模拟预测引擎,支持策略测试、风险管理和市场分析
MySQL引擎InnoDB和MyISAM的区别?
InnoDB是MySQL默认的事务型存储引擎,支持事务、行级锁、MVCC、在线热备份等特性,主索引为聚簇索引,适用于高并发、高可靠性的场景。MyISAM设计简单,支持压缩表、空间索引,但不支持事务和行级锁,适合读多写少、不要求事务的场景。
96 9
InnoDB引擎特性
InnoDB事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MySQL5.5.5之后,InnoDB作为默认存储引擎,InnoDB主要特性有: InnoDB给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供了一个类似Oracle的非锁定读。 InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘关系的数据库引擎所不能匹敌的。 InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
Playwright 是一个强大的工具,用于在各种浏览器上测试应用,并模拟真实设备如手机和平板。通过配置 `playwright.devices`,可以轻松模拟不同设备的用户代理、屏幕尺寸、视口等特性。此外,Playwright 还支持模拟地理位置、区域设置、时区、权限(如通知)和配色方案,使测试更加全面和真实。例如,可以在配置文件中设置全局的区域设置和时区,然后在特定测试中进行覆盖。同时,还可以动态更改地理位置和媒体类型,以适应不同的测试需求。
382 1
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
这篇文章是关于Elasticsearch全文搜索引擎的学习指南,涵盖了基本概念、命令风格、索引操作、分词器使用,以及数据的增加、修改、删除和查询等操作。
79 0
elasticsearch学习六:学习 全文搜索引擎 elasticsearch的语法,使用kibana进行模拟测试(持续更新学习)
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
100 1
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
单元测试问题之使用TestMe时利用JUnit 5的参数化测试特性如何解决
133 2
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等