0

私は 3 つのテーブルを持っています。1 つ目はcontactで、すべての連絡先とその名前、電子メールなどを含みます。2
つ目はcross_contactList_contactで、各連絡先を複数の連絡先リストに接続するためのヘルプ テーブルとしてのみ使用されます。
3 つ目は連絡先リストの名前と設定を含み、このクエリでは使用されません。

このクエリは、連絡先リストが独自のテーブルから削除された後、削除されたリスト ID を含むクロス テーブルのすべての行も削除された後に 1 回起動されます。このクエリは「クリーンアップ」のようなもので、他の連絡先リストにない連絡先があるかどうかを確認します。

問題は、DB が 1 ミルで動作する必要があることです。- 2.ミル。行ですが、テスト目的で、 5 つの異なる連絡先リストで約 70,000件の連絡先のみを使用しています (cross_contactList_contact の約 80,000 件のレコード、連絡先のいくつかは複数のリストにあり、リストの 1 つには約 60,000 件のレコードがあり、その他 < 3 000)しかし、クエリは合計で約 18 ~ 20 分実行されています

    DELETE contact FROM contact 
    LEFT JOIN cross_contactList_contact ON contact.id = cross_contactList_contact.contact_id
    WHERE cross_contactList_contact.contactList_id IS NULL
4

1 に答える 1

0

インデックスを再生成した後はすべて問題なかったので、まったく問題はありませんでした。ありがとう。

于 2014-03-06T10:11:04.177 に答える