我们每天使用以下方法将大约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
查询输出到单个文件并执行该行还是更快,是否更快?
我们正在使用InnoDB存储引擎。
答案 0 :(得分:0)
如果您使用MyISAM表,请尝试ALTER TABLE table_name DISABLE KEYS;在加载数据和ALTER TABLE table_name ENABLE KEYS之前;数据导入完成后。这将大大减少您获取大量数据所需的时间。
加载数据比每行的单独插入语句更快。