【发布时间】:2019-08-06 04:16:26
【问题描述】:
我正在使用 Talend Open Studio 进行数据迁移,因为我正在将现有的应用程序架构升级到新的架构。我在两个应用程序中都使用 MySQL,但架构不同。我已经在单个表之间成功迁移了数据,但是当我将数据从单个表传输到具有外键约束的父子关系表时,数据传输速度非常慢。 例如我正在将我的 Cities 表迁移到 Cities 和 Citiesi18n,下面是它们的架构:
我的旧架构:
CITIES (
id
city_name
status
created_at
)
我需要迁移数据的新创建的架构:
CITIES (
id
status
created_at
)
CITIESI18N (
id
lang_code
name
fk_city_id (// foreign key of cities table)
)
以下是我的 Talend 工作快照:
这里是 tmap 配置:
现在,当我在没有外键的情况下传输数据时,结果非常快。见下文:
但是当我用外键传输时,我的传输超级慢:
(注意:我以省表为例,因为它类似于城市表)
我认为外键约束必须在传输数据时对列进行索引,使其变慢,但我不确定。有什么办法可以解决这个问题,因为我有很多类似的表需要迁移。我只是想知道原因。
【问题讨论】:
-
尝试从 tmap 的 id 列中删除键并检查它是否有效。
-
MySQL 仅为 InnoDB 表的外键创建索引。你的表是 InnoDB 吗?加上检查任何其他案例 - stackoverflow.com/questions/304317/…
标签: mysql foreign-keys etl database-migration talend