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

How can I import very large csv file into mysql fastly?

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

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

您可以暂时禁用key/indexes(对于 MyISAM)所涉及的表

ALTER TABLE ... ENABLE/DISABLE KEYS

或将 AUTO_COMMIT 设置为关闭 InnoDB。

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

然后 运行 加载数据 INFILE

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

您可以参考这个详细的答案: MySQL disable & enable keys

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

数据库往往受 IO 限制,因此如果您想要更快的数据库,您应该将其放在更快的磁盘硬件上。

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