dumpling导出数据太慢,有什么办法可以加快导出吗?

为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。

  • 【TiDB 版本】:v4.0.8
  • 【问题描述】:我们系统数据库是mysql,现在想迁移到tidb数据库系统,用dumpling导出数据的时候发现很慢,其实有一张1000w条记录的分区表导出竟然使用了两个多小时,想咨询下有什么办法可以加快导出吗?

以下是导出命令
./tidb-toolkit-v4.0.8-linux-amd64/bin/dumpling
-u zhangsan
-p ud9ef0Tc2q
-P 3306
-h 10.8.89.115
–filetype sql
–threads 32
-o /data/backup/mysql_20201203
-B mediamz
-T mediamz.tbl_kol_log
-F 512MiB

  1. 可以观察一下这个 dump 的磁盘负载怎样。
  2. 这个 1000W 的表的结构是怎样的。
  3. 可以尝试调整并发数量以及调小一点 -F 的值进行尝试。

第一个问题,磁盘负载当时还没注意到,

第二个问题,表结构是个分区表,建表语句如下,
CREATE TABLE tbl_kol_log (
home_link varchar(255) COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT ‘主页链接’,
platform varchar(50) COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT ‘社交平台’,
info_json json DEFAULT NULL COMMENT ‘信息’,
create_time int(10) NOT NULL COMMENT ‘创建时间’,
PRIMARY KEY (home_link,platform,create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT=‘kol更新日志表’
PARTITION BY RANGE ( create_time ) (
PARTITION p0 VALUES LESS THAN (1601481600),
PARTITION p1 VALUES LESS THAN (1604160000),
PARTITION p2 VALUES LESS THAN (1606752000),
PARTITION p3 VALUES LESS THAN (1609430400),
PARTITION p4 VALUES LESS THAN (1612108800),
PARTITION p5 VALUES LESS THAN (1614528000),
PARTITION p6 VALUES LESS THAN (1617206400),
PARTITION p7 VALUES LESS THAN (1619798400),
PARTITION p8 VALUES LESS THAN (1622476800),
PARTITION p9 VALUES LESS THAN (1625068800),
PARTITION p10 VALUES LESS THAN (1627747200),
PARTITION p11 VALUES LESS THAN (1630425600),
PARTITION p12 VALUES LESS THAN (1633017600),
PARTITION p13 VALUES LESS THAN (1635696000),
PARTITION p14 VALUES LESS THAN (1638288000),
PARTITION p15 VALUES LESS THAN (1640966400)
);

第三个问题,需要如何调整?以下调整可以吗

./tidb-toolkit-v4.0.8-linux-amd64/bin/dumpling
-u zhangsan
-p ud9ef0Tc2q
-P 3306
-h 10.8.89.115
–filetype sql
–threads 64
-o /data/backup/mysql_20201203
-B mediamz
-T mediamz.tbl_kol_log
-F 128MiB

可以参考下这个 https://docs.pingcap.com/zh/tidb/stable/dumpling-overview#通过并发提高-dumpling-的导出效率