2013-05-12 132 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

爲什麼擺在首位您的數據庫負載的重複?

儘可能早地避免它們。這對性能更好,而且不必編寫複雜的查詢。