このクエリより簡単になるのですか?セルフ・ジョイン削除クエリが遅くなる
delete a.* from matches a
inner join matches b ON (a.uid = b.matcheduid)
はい、明らかにそれはありません... matches
テーブルが非常に大きい場合上記のクエリのパフォーマンスが本当に悪いですので。
matches
は約220万レコードです。私はこのDELETEクエリが約15,000レコードまでのサイズを取ることを望んでいます。どのようにしてクエリのパフォーマンスを向上させることができますか?私は両方の列にインデックスを持っています。このInnoDBテーブルのUIDとMatchedUIDは唯一の2つのカラムであり、どちらもINT(10)という符号なしタイプです。質問は私のラップトップ(i7プロセッサ)で14時間以上実行されています。
愚かなアイデア:それは 'SELECT'でどんな速さでも解決しますか?その場合は、削除するIDを含むテンポラリテーブルを作成し、それを結合するか、 'IN(サブクエリ)'を使用してより速いかどうか確認してください。 –
他の愚かなアイデア:これらの列にインデックスがありますか? – tdammers
はい、インデックスは両方の列にあります。多分それがDELETEが遅い理由でしょうか? @ダン - 私はあなたの提案を試してみます。 – BMiner