Question

Je voudrais optimiser mon vérificateur Doublon si quelqu'un sait comment il pourrait être plus rapide.

$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());
        }
Était-ce utile?

La solution

Je le fais habituellement de la manière suivante:

Delete from Email where ID not in 
(
Select Min(em.ID) minID
from eMail em  group by em.Email
)

Autres conseils

Cette requête utiliserait un index sur (EMAIL) ou sur (EMAIL, EMAIL_ID) . Cependant, vous ne devriez pas avoir à exécuter cette requête plus d'une fois, ses performances ne devraient donc pas trop vous inquiéter. Une fois que vous avez supprimé votre " Doublons " il suffit de remplacer l'index sur (EMAIL) par une CLE UNIQUE sur (EMAIL) et vous n'aurez plus jamais de doublons d'e-mails.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top