如何快速将非常大的csv文件导入mysql?

时间:2015-04-18 07:00:19

标签: mysql performance csv import row

如果我有1 GB的csv文件并且我想快速将其导入mysql,我该怎么办?我之前尝试导入1 GB文件,耗时约1.5小时。我使用16 GB RAM的计算机。如果我想上传较大的文件,则需要更长的时间。

那么,我应该怎样做才能加快这个过程? 感谢....

2 个答案:

答案 0 :(得分:0)

您可以暂时禁用所涉及的表的键/索引(对于MyISAM)

ALTER TABLE ... ENABLE/DISABLE KEYS

或将Inn_DB的AUTO_COMMIT设置为off。

SET AUTOCOMMIT = 0; 
SET FOREIGN_KEY_CHECKS = 0; 
SET UNIQUE_CHECKS = 0;
SET sql_log_bin = 0;

然后运行LOAD DATA INFILE

注意:这里要注意的一点是,驻留在同一主机上的源文件可以帮助我们提高性能,因为数据不必通过网络传输。简而言之,使用LOAD DATA INFILE而不是LOAD DATA LOCAL INFILE。

你可以从这个精心设计的答案中得到一个答案: MySQL disable & enable keys

答案 1 :(得分:0)

将MySQL数据库放在更快的磁盘上。

数据库往往受IO限制,所以如果你想要一个更快的数据库,你应该把它放在更快的磁盘硬件上。

您的数据的磁盘存储空间是多少?一个SATA驱动器?这将最多处理每秒50-70次IO操作。