快速将大型数据集批量导入MySQL

快速将大型数据集批量导入MySQL

我有一个相当大的数据集需要导入到 MySQL。我希望尽可能高效地完成此操作,因为我需要重复执行此操作。有什么技巧吗?有没有比扩展 INSERT 语句更有效的方法?

为了回答评论中的问题,原始格式是 XML,尽管我已经有一个转换器可以将其转换为 CSV 格式。我正在使用 MySQL 5.1.x,目标数据库是 InnoDB。数据之间存在关系,但我没有任何约束,而且在大多数情况下数据不够干净,无法施加约束。

答案1

尝试mysql导入您可以直接从 CSV 文件导入。

答案2

我会读mysql手册中,我正在考虑 INSERT AFTER,但 LOAD DATA INFILE 看起来很有趣“快 20 倍”......

答案3

有一个开源 ETL 工具叫做Pentaho 数据集成具有 mysql 批量加载选项(位于设计视图中的实验文件夹下)。您还可以使用其 CSV 输入和表输出步骤以与平台无关的方式快速加载数据。如果您需要在加载数据之前对其进行任何处理,则可以在此程序中编码该逻辑。

答案4

即使是批量“插入...”也不会花费太长时间。我导出了一个 200MB 的新 JIRA 数据库,并在大约 30 秒内将其加载到原始数据库中。

相关内容