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());
        }
È stato utile?

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
scroll top