2013-05-12 136 views
0

我对数据库游戏非常陌生,所以原谅我的无知。mysql - 避免重复的最好方法

我加载百万行成一个结构简单的MySQL数据库表

SQLStr = "LOAD DATA LOCAL INFILE 'f:/Smallscale/02 MMToTxt/flat.txt' 
    INTO TABLE `GMLObjects` FIELDS TERMINATED BY ',' 
    LINES STARTING BY 'XXX';" 

在餐桌上已设置为对一场没有重复的时刻。

但是,我想知道是否会更快地删除无重复规则,并通过使用ALTER TABLESELECT DISTINCT或某些此类查询来处理稍后重复的问题。

你的想法是什么?

P.S数据库引擎InnoDB的是

回答

0

不能将具有重复项的表“改变”为没有的表。

MySQL无法知道应删除哪些行。这意味着需要很多工作和麻烦才能在稍后删除它们,并且会产生删除的条目而没有任何好处。

因此尽可能早地避免重复。

+0

您可以添加一个唯一的键到表中,并使用'ignore'不删除重复项。 – 2013-05-12 18:51:38

0

为什么摆在首位您的数据库负载的重复?

尽可能早地避免它们。这对性能更好,而且不必编写复杂的查询。