dm同步数据问题

【TiDB 使用环境】 Poc
【TiDB 版本】8.5.0
【操作系统】
【部署方式】阿里云ecs部署

【遇到的问题:问题现象及影响】
dm 迁移数据,采用full模式一次性导全量,不做增量同步,
start-task之后,登录查看源库,


select语句没有where条件,

我想确认下,全量导数据,如果表主键不是整型,是不是就是直接select 全表的,只有是整型主键的表才会 分批导出(id>? and id<?)

DM全量迁移的背后就是做了一次dumpling+lightning,dumpling对上游为 MySQL 且表的主键或复合主键首列是 INT 的场景,会有表内并发效果,就是分批。

1 个赞

也就是说,如果主键是字符类型,mydumper-thread 线程设置大于1是没有意义的咯

感觉上应该是全部拉取之后,再分批处理。
https://docs.pingcap.com/zh/tidb/stable/dm-tune-configuration/#rows

https://docs.pingcap.com/zh/tidb/stable/dumpling-overview/#导出为-sql-文件

  • -t 用于指定导出的线程数。增加线程数会增加 Dumpling 并发度提高导出速度,但也会加大数据库内存消耗,因此不宜设置过大。一般不超过 64。

有意义的,就和这个参数作用类似。

他理解的线程数,可能就是分组数,比如线程1,就是where 主键 大于 0 小于2,一次只取一条数据,但是当主键是字符型,就没办法对主键加大于 小于的条件了。

1 个赞