DataMover 性能实测:500万行单表同步基准与扩展方式

本文记录 DataMover 在单表单任务场景下的基准测试:MySQL 到 MySQL 全量同步 500 万行、约 2GB 数据,4 核 8GB Worker 环境约 2 分钟完成。这个数据用于评估基准能力,实际吞吐还取决于服务器配置、源库负载、网络和目标端写入能力。

一、测试环境

配置项详情
测试场景MySQL 到 MySQL 全量一次性同步,单表单任务
源表结构25 个字段(含 int、varchar、datetime、text 等常见类型)
数据量500 万行
数据大小2 GB
目标表索引仅主键,无二级索引
Worker 配置4 核 8GB,JVM 堆内存 4GB
网络环境内网环境

📷 图:测试环境架构图 位置:blog/DataMover性能实测/1-测试环境.png

二、测试结果

指标结果
同步耗时2 分钟
吞吐量约 4.17 万行/秒
网络吞吐约 17 MB/秒
CPU 使用率约 60-70%
内存使用约 3.2 GB

📷 图:性能测试数据图 位置:blog/DataMover性能实测/2-性能数据.png

三、性能表现分析

3.1 写入效率

目标表无二级索引时,INSERT 操作无额外索引维护成本,写入效率达到最优。测试中单批次写入 1000 行,平均耗时约 24ms。

📷 图:写入性能曲线 位置:blog/DataMover性能实测/3-写入曲线.png

3.2 网络传输

2GB 数据在 2 分钟内完成传输,平均网络吞吐约 17 MB/s。这在大多数企业内网环境中是稳定的表现。

📷 图:网络吞吐监控 位置:blog/DataMover性能实测/4-网络吞吐.png

3.3 资源利用率

Worker 节点 CPU 和内存使用稳定,无明显波动:

📷 图:资源监控图 位置:blog/DataMover性能实测/5-资源监控.png

四、影响性能的关键因素

4.1 目标表索引数量

目标表索引性能影响
无二级索引基准性能(100%)
1个二级索引下降约 20%
2个二级索引下降约 30%
3个以上下降约 40%+

📷 图:索引与性能关系图 位置:blog/DataMover性能实测/6-索引影响.png

建议:同步前临时移除目标表索引,同步后再重建,可显著提升性能。

4.2 网络带宽

网络是数据传输的瓶颈之一:

网络带宽预期吞吐
100Mbps约 10 MB/s
1Gbps约 100 MB/s
10Gbps约 1 GB/s

4.3 字段宽度

宽表(如包含 TEXT/BLOB)单行数据大,吞吐量(行/秒)会相应降低。

字段类型单行大小吞吐量影响
简单字段< 1KB标准
含 TEXT1-5KB下降 30%
含 BLOB> 5KB下降 50%+

4.4 Worker 资源配置

配置并发能力批次缓存
2核4G100 任务/节点100MB
4核8G100+ 任务/节点200MB
8核16G200+ 任务/节点500MB

📷 图:资源配置建议表 位置:blog/DataMover性能实测/7-资源配置.png

4.5 源端读取性能

源库负载和索引设计直接影响数据读取速度:

五、性能调优建议

5.1 目标表优化

-- 同步前:移除索引
ALTER TABLE target_table DROP INDEX idx_field1;

-- 同步后:重建索引
ALTER TABLE target_table ADD INDEX idx_field1 (field1);

5.2 JVM 参数调优

# 生产环境推荐 JVM 参数
-Xms4g -Xmx4g -XX:+UseG1GC -XX:MaxGCPauseMillis=200

5.3 任务参数调优

参数默认值调优建议
batchSize1000大数据量可调至 2000-5000
fetchSize100网络差可调小
parallelism1CPU 空闲时可增加

📷 图:参数调优界面 位置:blog/DataMover性能实测/8-参数调优.png

六、怎么看这个性能数据

500 万行约 2 分钟不是万能结论,它只说明在这组测试条件下,DataMover 的单任务全量同步能力可以满足常见初始化、迁移验证和中小规模全量同步需求。

是否达到“主流工具标准”,不能只看单个数字。更合理的判断方式是把源库负载、目标库写入能力、字段宽度、索引数量、网络带宽、并发任务数放在同一个测试环境里比较。

如果服务器配置更高,可以同时启动多个同步任务;也可以水平部署多个 Worker,把不同任务分配到不同节点执行。这样提升的是整体吞吐,而不是单个任务的孤立数字。

七、适用场景

DataMover 的性能表现适用于:

对于更大数据量(千万级+),建议:

  1. 使用 CDC 增量同步
  2. 分批次同步
  3. 增加 Worker 节点

八、总结

这次测试可以作为 DataMover 的单表单任务基准:4 核 8GB Worker、MySQL 到 MySQL、25 字段、500 万行约 2GB 数据,约 2 分钟完成。

关键性能指标

如果你有大规模数据迁移需求,建议先用自己的源库、目标库和网络环境跑一组基准测试。免费版不限制数据量,也支持 CDC,可以先从小规模验证开始。

相关同步方案

除了数据迁移同步解决方案,DataMover还支持以下场景:

数据迁移同步平台异构数据库实时同步数据迁移工具推荐企业级数据同步方案免费数据迁移工具MySQL到ClickHouse数据同步Oracle到达梦数据库迁移SQL Server到MySQL数据迁移

常见问题解答

数据迁移是否支持全量和增量?

DataMover的普通任务支持全量一次性同步和基于字段的增量同步。

增量同步和实时同步有什么区别?

增量同步延迟分钟级,实时同步(CDC)可达秒级延迟,能捕获所有数据变更。

CDC同步对源数据库性能影响多大?

采用无锁读取方式,对源库性能影响极小。

免费社区版能同步多少数据?

免费社区版不限制数据量,限制3个同步任务和1个执行节点。

开始配置 DataMover 同步任务

下载 DataMover 后,可按文档完成数据源、表映射、同步策略、任务启动和执行结果校验。