質問

どのように高速化できるかを誰かが知っているなら、ダブロンチェッカーを最適化したいと思います。

$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());
        }
役に立ちましたか?

解決

通常は次の方法で行います:

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

他のヒント

そのクエリは、(EMAIL)または(EMAIL、EMAIL_ID)のインデックスを使用します。ただし、そのクエリを複数回実行する必要はありません。そのため、パフォーマンスがあまり心配する必要はありません。 「ダブロン」を削除したら、 (EMAIL)のインデックスを(EMAIL) UNIQUE KEY に置き換えるだけで、二度とメールが重複することはありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top