Come ottimizzare un correttore di duplicati sql
-
22-07-2019 - |
Domanda
Vorrei ottimizzare il mio correttore Doublon se qualcuno sa come potrebbe essere più veloce.
$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());
}
Soluzione
Di solito lo faccio nel modo seguente:
Delete from Email where ID not in
(
Select Min(em.ID) minID
from eMail em group by em.Email
)
Altri suggerimenti
Quella query userebbe un indice su (EMAIL)
o su (EMAIL, EMAIL_ID)
. Tuttavia, non dovresti dover eseguire quella query più di una volta, quindi le sue prestazioni non dovrebbero preoccuparti troppo. Una volta rimossi i " Doublon " sostituisci l'indice su (EMAIL)
con un UNIQUE KEY
su (EMAIL)
e non avrai mai più e-mail duplicate.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow