数据高压缩比

最近更新时间:2025-12-24 12:03:43

我的收藏
相比于传统的 MySQL InnoDB 引擎,TDSQL Boundless 提供最高3.81的压缩比。本文为有计划进行数据库迁移或选型的用户提供磁盘的容量评估。

核心优势解读:为何 TDSQL Boundless 能实现如此高的压缩比?

TDSQL Boundless 采用了 LSM 结构存储数据,由于 LSM 的 Append only 的特点,其避免了 B+ 树因原地更新导致频繁的随机写入产生的数据页内碎片。同时LSM 后台 compaction 的特点,避免了每次写入都要压缩数据的开销,极大地降低了压缩对性能的影响。因此 TDSQL Boundless 相比 MySQL InnoDB,在相近的性能表现下,数据压缩比可达3.81。
解读完内核,我们来看下实测数据,量化对比 TDSQL Boundless 数据库与 MySQL 在存储相同数据时的空间占用,并验证高压缩比在不同数据模型(OLTP、OLAP)下的有效性,为用户从 MySQL 迁移时,提供科学的磁盘容量规划指引。

测试概述

测试环境

选项
说明
云平台
腾讯云
实例规格
16Core CPU/32GB Memory/增强型 SSD 云硬盘 300GB

对比数据库

对照组:MySQL 8.0 (使用 InnoDB 存储引擎,默认配置)
实验组:TDSQL Boundless(内置高效数据压缩引擎)

关键配置

MySQL 8.0 InnoDB 引擎默认配置:
# MySQL InnoDB 默认参数配置
innodb_file_per_table=ON
innodb_page_size=16K
# 未启用 innodb_page_compression (代表绝大多数生产环境的默认情况)
innodb_page_compression=OFF

测试数据集

Sysbench 基准测试
TPC-C 基准测试
TPC-H 基准测试

测试计划

准备测试数据

Sysbench 基准测试:参考 Sysbench 测试,初始化32张表,每张表1000万条记录。
TPC-C 基准测试:参考 TPC-C 测试,初始化1000个 Warehouse。
TPC-H 基准测试:参考 TPC-H 测试,初始化8张表(带索引),生成100GB测试数据集。

测试结果与数据分析

存储空间占用对比(单位:GB)

数据集
MySQL 8.0 (InnoDB)
TDSQL Boundless
Sysbench
72.6GB
36.77GB
TPC-C (1000 Warehouses)
77.8GB
43.5GB
TPC-H (100GB)
128.54GB
33.78GB
TPC-H (100GB)(带索引)
166.42GB
45.29GB


数据压缩比对比(MySQL 为基准100%)

数据集
MySQL 8.0 (InnoDB)
TDSQL Boundless
Sysbench
100%
~50.64%
TPC-C (1000 Warehouses)
100%
~55.91%
TPC-H (100GB)
100%
~26.27%
TPC-H (100GB)(带索引)
100%
~27.21%


用户迁移指南:磁盘容量规划建议

如果您正在从 MySQL 迁移到 TDSQL Boundless,并希望评估目标数据库的磁盘需求,请遵循以下简单指引:

第一步:评估 MySQL 的磁盘使用情况

登录您的 MySQL 实例,执行以下命令查看总数据大小:
SELECT table_schema AS 'Database',
ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS 'Size(GB)'
FROM information_schema.TABLES
GROUP BY table_schema;

第二步:根据业务场景选择压缩系数

源端 MySQL 业务数据类型
建议规划系数
通用 OLTP 业务(订单、用户等)
按 MySQL 空间的 50% 规划
日志、监控、时序数据
按 MySQL 空间的 30% 规划
数据仓库、报表分析 (AP)
按 MySQL 空间的 30% 规划

第三步:计算目标磁盘容量

所需磁盘约等于源端 MySQL 容量 ✖️ 规划系数。