我正在尝试导入一个70MB的csv文件(如果有任何区别,则分隔的空间) 它由大约600万行组成,每行包含2个数字(2列)。
导入1 MB的文件大约需要1个小时,该文件有大约一百万行。 我尝试使用phpmyadmin(CSV)的导入功能,并尝试使用Bigdump,但两者几乎都在同一时间。
我担心的是,如何将一个简单的70 MB文件加载到数据库中这么长时间(2天半)?那么,如果导入本身需要这么长时间,使用数据库有什么意义呢?
我把max_memory_size = 1280 MB,所以我认为70mb文件没有任何内存问题。我在我的本地主机上这样做,我也试过我部门的服务器。即使使用bigdump.php并且没有互联网速度问题也花费相同的时间
答案 0 :(得分:2)
通过禁用某些检查,并使用导入速度明显更快的LOAD DATA,可以提高批量插入的效率;例如
SET autocommit=0;
SET unique_checks=1;
SET foreign_key_checks=0;
LOAD DATA INFILE myfile.txt ESCAPED BY ' '
INTO TABLE mytable
SET unique_checks=1;o
SET foreign_key_checks=1;
COMMIT
可以找到更多信息;
它花了这么长时间的事实可能需要你调查潜在的问题。