一、核心优势解读:为何 TDSQL Boundless 能实现如此高的压缩比?
TDSQL Boundless 采用了 LSM 结构存储数据,由于 LSM 的 Append only 的特点,其避免了 B+ 树因原地更新导致频繁的随机写入产生的数据页内碎片。同时 LSM 后台 compaction 的特点,避免了每次写入都要压缩数据的开销,极大地降低了压缩对性能的影响。因此 TDSQL Boundless 相比 MySQL InnoDB,在相近的性能表现下,数据压缩比可达3.81。
解读完内核,我们来看下实测数据,量化对比 TDSQL Boundless 数据库与 MySQL 在存储相同数据时的空间占用,并验证高压缩比在 OLTP 数据模型下的有效性,为用户从 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 基准测试
六、准备测试数据
·Sysbench 基准测试:参考 Sysbench 测试,初始化32张表,每张表1000万条记录。
·TPC-C 基准测试:参考 TPC-C 测试,初始化1000个 Warehouses。
七、存储空间占用对比(单位:GB)
| 数据集 | MySQL 8.0 (InnoDB) | TDSQL Boundless |
| Sysbench | 72.6GB | 36.77GB |
| TPC-C (1000 Warehouses) | 77.8GB | 43.5GB |
八、数据压缩比对比(MySQL 为基准100%)
| 数据集 | MySQL 8.0 (InnoDB) | TDSQL Boundless |
| Sysbench | 100% | ~50.64% |
| TPC-C (1000 Warehouses) | 100% | ~55.91% |
九、用户迁移指南:磁盘容量规划建议
如果你正在从 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 容量 × 规划系数。