【发布时间】:2013-09-11 22:16:44
【问题描述】:
我有一个非常大的表,在 c# 数据表中有大约 1,000,000 行数据,我想将其上传到 mysql 数据库表中。最好和最快的方法是什么?
遍历行并一次上传一行看起来是非常糟糕的性能,有时还会引发超时异常。
我知道其中一种解决方案是将其写入文件并使用 mysqlbulkloader 从文件中读取。有没有其他方法可以直接从数据表到数据库?
【问题讨论】:
-
当然,您可以插入它,我不确定 BulkInsert 是否适用于 MySQL,但您可以查看它。不过,我的建议是您确实将其写入文件并批量导入。我自己最近对此的经验是,从列表到数据库的任何形式的插入(我尝试使用 link2SQL 插入每一行和 BulkInsert)都会非常缓慢。对于超过 200 万条记录,BulkImport 的速度提高了数百倍。
-
在您尝试下面的答案后,这看起来很像我尝试的第二种方法,如果需要更长的时间超过一分钟或 2 分钟,请尝试添加一个存储过程,直接从 MySQL 调用 bulkimport 以加载您从列表中写出的制表符分隔文件。我想你会感到惊喜的。我的经验是使用 SQL Server,但是我不能 100% 确定它会如何发展。
标签: c# mysql datatable large-data