我需要将一个包含2000万行和2列的csv文件导入到数据库中,但是当我尝试使用MySQL Workbench的数据导入向导时,它非常慢,可能需要1个月才能完成,看看进度条。我希望能有更快的方法。
t98cgbkg1#
始终使用Load Data Infile作为大型数据集的首次尝试。Load Data Infile上的Mysql手册页。对于这个问题,我写了几个答案,但是为了进行同行比较,请参阅这个人的问题和我的Answer以及他对Workbench与Load Data Infile的时间比较。
Load Data Infile
iyr7buue2#
这是另一种选择。将CSV数据转储到sql脚本中,您需要为此写下一些代码。基本上,您的csv数据将被转换为类似于以下命令第一个月现在使用MySQL shell脚本并使用SOURCE命令C:/用户/桌面/SQL脚本/脚本. sql与直接导入数百万条记录CSV文件相比,导入数据的速度更快。
SOURCE
bqf10yzr3#
如果你不想写代码,我建议你尝试另一个免费的GUI客户端,比如HeidiSQL。它导入CSV/文本文件的速度比MySQL Workbench快得多。
2cmtqfgy4#
我在MySQL Workbench中遇到了类似的问题。我找到的替代方案是Toad for MySQL(https://www.toadworld.com/m/freeware/1469)这将需要我40分钟通过MySQL管理,连接到一个远程MySQL服务器。在MySQL服务器上,上传需要几分钟。有了toad,我可以连接到远程服务器,并在几分钟内上传。我确实尝试了HeidiSQL,但没有发现它导入起来那么友好。
jdzmm42g5#
总是喜欢在导入数据集的文件中加载数据,不方便的是=>你必须在导入之前创建一个表结构。导入向导允许您直接从csv或json动态创建新表。我认为这种缓慢的原因是:workbench使用python作为导入向导。在导入向导的日志中可以看到,当发生错误时,它是python的控制台日志。如果你出于任何原因不想创建结构,你可以启动进程,它将从csv创建表,然后杀死进程。然后,删除表中的所有内容并将数据加载到文件中。这是一种丑陋的“黑客”,但它为我工作。
vdgimpew6#
我建议使用MySQL for Excel来快速导出/导入向导这是无痛和快速的,你不需要解决所有的错误和调整,你必须围绕LOAD DATA INFILE工作
LOAD DATA INFILE
6条答案
按热度按时间t98cgbkg1#
始终使用
Load Data Infile
作为大型数据集的首次尝试。Load Data Infile上的Mysql手册页。
对于这个问题,我写了几个答案,但是为了进行同行比较,请参阅这个人的问题和我的Answer以及他对Workbench与Load Data Infile的时间比较。
iyr7buue2#
这是另一种选择。将CSV数据转储到sql脚本中,您需要为此写下一些代码。基本上,您的csv数据将被转换为类似于以下命令
第一个月
现在使用MySQL shell脚本并使用
SOURCE
命令C:/用户/桌面/SQL脚本/脚本. sql
与直接导入数百万条记录CSV文件相比,导入数据的速度更快。
bqf10yzr3#
如果你不想写代码,我建议你尝试另一个免费的GUI客户端,比如HeidiSQL。它导入CSV/文本文件的速度比MySQL Workbench快得多。
2cmtqfgy4#
我在MySQL Workbench中遇到了类似的问题。我找到的替代方案是Toad for MySQL(https://www.toadworld.com/m/freeware/1469)
这将需要我40分钟通过MySQL管理,连接到一个远程MySQL服务器。在MySQL服务器上,上传需要几分钟。有了toad,我可以连接到远程服务器,并在几分钟内上传。我确实尝试了HeidiSQL,但没有发现它导入起来那么友好。
jdzmm42g5#
总是喜欢在导入数据集的文件中加载数据,不方便的是=>你必须在导入之前创建一个表结构。导入向导允许您直接从csv或json动态创建新表。
我认为这种缓慢的原因是:workbench使用python作为导入向导。在导入向导的日志中可以看到,当发生错误时,它是python的控制台日志。
如果你出于任何原因不想创建结构,你可以启动进程,它将从csv创建表,然后杀死进程。然后,删除表中的所有内容并将数据加载到文件中。这是一种丑陋的“黑客”,但它为我工作。
vdgimpew6#
我建议使用MySQL for Excel来快速导出/导入向导
这是无痛和快速的,你不需要解决所有的错误和调整,你必须围绕
LOAD DATA INFILE
工作