SQL Doublonチェッカーを最適化する方法
-
22-07-2019 - |
質問
どのように高速化できるかを誰かが知っているなら、ダブロンチェッカーを最適化したいと思います。
$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
に置き換えるだけで、二度とメールが重複することはありません。
所属していません StackOverflow