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

Ken*_*uki 5 mysql csv import performance row

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

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

avi*_*eks 2

您可以暂时禁用相关表的键/索引(对于 MyISAM)

ALTER TABLE ... ENABLE/DISABLE KEYS
Run Code Online (Sandbox Code Playgroud)

或者将 InnoDB 的 AUTO_COMMIT 设置为关闭。

SET AUTOCOMMIT = 0; 
SET FOREIGN_KEY_CHECKS = 0; 
SET UNIQUE_CHECKS = 0;
SET sql_log_bin = 0;
Run Code Online (Sandbox Code Playgroud)

然后运行 ​​LOAD DATA INFILE

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

您可以从这个详尽的答案中获取参考: MySQL禁用和启用键