如何优化sql doublon检查器
我想优化我的Doublon检查器,如果有人知道如何更快如何优化sql doublon检查器,sql,mysql,duplicate-removal,Sql,Mysql,Duplicate Removal,我想优化我的Doublon检查器,如果有人知道如何更快 $doublonchecker="delete bad_rows.* from eMail as good_rows inner join eMail as bad_rows on bad_rows.EMAIL = good_rows.EMAIL and bad_rows.EMAIL_ID > good_rows.EMAIL_ID"; $resultdoublon = mysql_query($doublonchecker);
$doublonchecker="delete bad_rows.* from eMail as good_rows inner join eMail as bad_rows on bad_rows.EMAIL = good_rows.EMAIL and bad_rows.EMAIL_ID > good_rows.EMAIL_ID";
$resultdoublon = mysql_query($doublonchecker);
if (!$resultdoublon) {
die('Error : ' . mysql_error());
}
该查询将使用
(电子邮件)
或(电子邮件,电子邮件ID)
上的索引。但是,您不必多次运行该查询,因此它的性能不会让您太担心。一旦您删除了“Doublons”,只需将(电子邮件)
上的索引替换为(电子邮件)
上的唯一键,您就再也不会有重复的电子邮件了。该查询将使用(电子邮件)
或(电子邮件,电子邮件ID)
上的索引。但是,您不必多次运行该查询,因此它的性能不会让您太担心。删除“Doublons”后,只需将(电子邮件)
上的索引替换为(电子邮件)
上的唯一键,您就再也不会有重复的电子邮件了。我通常采用以下方法:
Delete from Email where ID not in
(
Select Min(em.ID) minID
from eMail em group by em.Email
)
我通常是这样做的:
Delete from Email where ID not in
(
Select Min(em.ID) minID
from eMail em group by em.Email
)