3

每天我们使用以下方法将大约 6GB 的 CSV 文件加载到 MySQL 中:

LOAD DATA LOCAL INFILE 'file$i.csv' INTO TABLE tableName FIELDS TERMINATED BY ',' ENCLOSED BY '\"' LINES TERMINATED BY '\n';

我们有 6 个文件要经过此过程,因此需要一些时间。由于我们自己生成这些文件,因此我们可以控制输出的格式。

最初我们选择 CSV 是因为这是一个较小的流程,并且我们需要移动数据并让非开发人员轻松读取。然而,现在这不是什么大问题,因为加载时间是如此戏剧性,我们现在正在谈论几个小时。

将每一行作为INSERT查询输出到单个文件并执行该文件是否更快,还是 CSV 更快?

我们正在使用 InnoDB 存储引擎。

4

1 回答 1

0

如果您使用 MyISAM 表,请尝试 ALTER TABLE table_name DISABLE KEYS; 在加载数据和 ALTER TABLE table_name ENABLE KEYS 之前;数据导入完成后。这将大大减少您处理大量数据的时间。

加载数据比为每行单独插入语句更快。

于 2013-09-19T12:27:12.250 回答