私はMySQLサーバ上で2つのテーブル内部結合クエリを実行していますが、それは非常に遅く、終了するのに3時間かかります。内部結合クエリはインデックス付きテーブルで非常に遅いですか?
UPDATE table_A ta
JOIN table_B tb
ON ta.field1= tb.field1
AND ta.field2 = tb.field2
SET ta.field2 = tb.field2,
ta.field3 = tb.field3
WHERE tb.field5 = 'ABC'
table_Aは table_Bは100,000行
どちらもTAがあり65万行があります。 field1
、ta。 field2
、tb。 field1
、tb。 field2
、tb field5
はすべて索引付けされ、EXPLAIN結果に表示されます。
どのようにすれば、より速く走らせることができますか?このクエリの
インデックスの作成SQLを追加します。おそらくインデックスが不正です。明らかにtb.field5にインデックスが必要です – Andrew
インデックスを持つフィールドを更新しています。なぜあなたはそれを必要としますか? –
私はこの質問をdownvoteしませんでしたが、クエリ最適化のヘルプを依頼するときに、クエリの各テーブルに 'SHOW CREATE TABLE'の出力を含めて、データタイプ、インデックス、および制約を見ることができるようにしてください。 'EXPLAIN'の出力も含めます。 –