いくつかの基準に基づいて、1 億行を超えるテーブルから約 10,000 行を削除する必要があります。クエリを実行すると、約 5 分かかります。説明計画 ( MySQL は をサポートしていないため、delete
クエリは に変換されます) を実行したところ、MySQL が間違ったインデックスを使用していることがわかりました。select *
explain delete
私の質問は次のとおりです。削除中にどのインデックスを使用するかをMySQLに伝える方法はありますか? そうでない場合は、どうすればよいですか? 一時テーブルを選択して一時テーブルから削除しますか?