相比于传统的 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=ONinnodb_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.TABLESGROUP BY table_schema;
第二步:根据业务场景选择压缩系数
源端 MySQL 业务数据类型 | 建议规划系数 |
通用 OLTP 业务(订单、用户等) | 按 MySQL 空间的 50% 规划 |
日志、监控、时序数据 | 按 MySQL 空间的 30% 规划 |
数据仓库、报表分析 (AP) | 按 MySQL 空间的 30% 规划 |
第三步:计算目标磁盘容量
所需磁盘约等于源端 MySQL 容量 ✖️ 规划系数。