MySQL workbench表数据导入向导极其缓慢

时间:2015-10-23 07:03:12

标签: mysql csv import mysql-workbench

我需要将一个包含2000万行和2列的csv文件导入数据库,但是当我尝试使用mysql workbench的数据导入向导进行此操作非常慢时,可能需要1个月才能完成,看着进度条。 我希望,必须有一些更快的方法来做到这一点。 非常感谢你

6 个答案:

答案 0 :(得分:16)

始终使用Load Data Infile作为大量数据集的首次尝试。

Load Data Infile上的Mysql手册页。

为这个问题写了几个答案,但是对于同行比较,请看这个人的问题和我的Answer以及他与Workbench和Load Data Infile的时间比较。

答案 1 :(得分:3)

这是另一种选择。 将您的CSV数据转储到sql脚本中,您需要为此写下一些代码。 基本上,您的csv数据将转换为类似于以下命令的文件 INSERT INTO TABLE_NAME values(1,2),(1,3),....;
现在使用MySQL shell脚本并使用SOURCE命令
MySQL的> source C:/ Users / Desktop / sql scripts / script.sql
与直接导入数百万条记录的CSV相比,您的数据将更快地导入。

答案 2 :(得分:3)

如果您不想编写代码,我建议您尝试另一个免费的GUI客户端,如HeidiSQL。它比MySQL Workbench更快地导入CSV /文本文件。

答案 3 :(得分:1)

我在MySQL工作台上遇到了类似的问题。 我找到的替代方案是Toad for MySQL(https://www.toadworld.com/m/freeware/1469

通过MySQL管理员连接到远程MySQL服务器需要40分钟。在MySQL服务器本身,上传需要几分钟。使用toad,我可以连接到远程服务器并在几分钟内上传。我确实尝试过HeidiSQL,但没有发现导入友好。

答案 4 :(得分:1)

在导入数据集时,总是喜欢在文件中加载数据,不便的是=>您必须在导入之前创建表结构。导入向导使您可以直接从csv或json动态创建新表。

我认为这种缓慢的原因是:Workbench使用python作为导入向导。您可以在导入向导的日志中看到发生错误时的情况,它是python的控制台日志。

如果由于某种原因不想创建结构,则可以启动该过程,它将从csv创建表,然后终止该过程。然后,删除表中的所有内容并加载文件中的数据。这是一种丑陋的“ hack”,但对我有用。

答案 5 :(得分:-1)

我对快速导出/导入向导的建议是使用MySQL for Excel

这既轻松又快捷,您无需解决必须解决LOAD DATA INFILE的所有错误和调整