在以CSV格式加载时更新数百万条记录或加入

时间:2015-09-28 13:35:18

标签: mysql ruby-on-rails csv

我正在努力将CSV导入到一个大约1180万行的Mysql表中。就目前而言,我正在使用mysql的LOAD DATA LOCAL INFILE方法来加载数据。这部分很好,需要大约10分钟才能加载所有11.8密耳。

每当我需要使用另一个表中的数据更新所有记录时,问题就出现了。我有一个工作(并且当前正在运行但接近24小时标记)进程,该进程在表上运行所有更新。我开始质疑是否有更快的方法来做到这一点。

我的一个想法是在此过程中我将CSV拆分为100k行文件并进行处理。我可以进行更新,因为只更新了连接填充的字段为空的100k行。另一个想法是尝试在CSV上运行一些预处理以将数据添加到它,然后使用快速方法上传它。

总的来说,只考虑更新的最佳方法是在我写的那个运行时。任何帮助/想法都会很棒!

旁注:这个过程每年只进行一次,因此不必进行惊人的优化,但是我希望有一些希望,一旦数据进入分期,它就会赢得胜利。需要很长时间才能将其投入生产

0 个答案:

没有答案