mysql加载数据infile vs使用表

问题描述:

我在文本文件中有很多数据(11k行)。我可以将它转换成sql文件,以便我可以加载数据infile。但是,我想知道是否将数据插入临时表并从该表中加载数据。两者之间的性能比较是什么?你建议一个更好的方法来做到这一点?mysql加载数据infile vs使用表

感谢,

MySQL的文件导入它相当快,所以除非有一个活的实例事务冲突的担忧,我不会与一个临时表麻烦。假设表没有100个字段或任何大的斑点/二进制文件,11k是相对较小的。

+0

如果数据较大100K行,什么是临时表的好处? – 2011-04-15 16:03:26

+0

我并不完全是这方面的专家,但我仍然不会使用临时表;我会将插页分成较小的批次。该mysqldump的实际做到了这一点 - 它插入大致10K行的批次,这样交易就可以,而之间跳跃在排队整个文件后面。 – 2011-04-15 21:04:47

这是一个相当典型的做法,如果我正确理解你。只需将原始数据加载到临时表中,然后使用SQL语句将其转移到目标表中,然后截断或删除临时表。这是一种简单的方法,也是一种穷人的ETL。对于11k条记录,这应该没问题(11k是一个非常小的表格,实际上,我经常做数百万行)。

如果你想表现最好的方法,你可以使用像了Talend的工具ETL和改造的方式将数据到数据库中,然后你消除对临时表的需求。

两种方法都有效,而且我认为性能是不可能在如何做到这一点的决定因素,几乎一样多,从而无论是最简单的方法。