0
我有一張大桌子。我發現重複,這張表有10列(讓我們說A,B,C,D ..等等)。我正在運行下面的查詢來獲取重複的記錄,但它需要超過1小時。 查詢:檢查大表中的重複
SELECT COUNT(*) FROM TABLE1 GROUP BY A,B,C,D,E HAVING COUNT(*) >1
有人建議我更快的方法來完成這件事。
我有一張大桌子。我發現重複,這張表有10列(讓我們說A,B,C,D ..等等)。我正在運行下面的查詢來獲取重複的記錄,但它需要超過1小時。 查詢:檢查大表中的重複
SELECT COUNT(*) FROM TABLE1 GROUP BY A,B,C,D,E HAVING COUNT(*) >1
有人建議我更快的方法來完成這件事。
使用此查詢查看績效!
SELECT count(*) FROM tbl_name mt
JOIN
(SELECT A,B,C,D,E FROM tbl_name GROUP BY A,B,C,D,E HAVING COUNT(*) >1) T
ON mt.A= T.A
and mt.B= T.B
and mt.C= T.C
and mt.D= T.D
and mt.E= T.E
您需要所有具有不同值的列嗎? –
表中有多少行?什麼硬件?很多事情會影響性能,而不僅僅是查詢。無論如何,如果這是一次性操作,如果需要一點時間,這有什麼關係嗎?但是,如果您經常執行此操作以刪除重複項,請問自己爲什麼 - 您是否應該更改表上的主鍵,以便重複項無法首先創建? – ADyson
如果你只是想找到它們後刪除重複的行,請參閱此 - https://stackoverflow.com/questions/3311903/remove-duplicate-rows-in-mysql –