私はMySQL 5.5を使用しており、次のSQLがあります。
UPDATE t SET val = 1 WHERE id IN ( SELECT id FROM temp1);
UPDATE t SET val = 2 WHERE id IN ( SELECT id FROM temp2 );
UPDATE t SET val = 3 WHERE id IN ( SELECT id FROM temp3 );
UPDATE t SET val = 4 WHERE id IN ( SELECT id FROM temp4 );
UPDATE t SET val = 5 WHERE id IN ( SELECT id FROM temp5 );
UPDATE t SET val = 6 WHERE id IN ( SELECT id FROM temp6 );
UPDATE t SET val = 7 WHERE id IN ( SELECT id FROM temp7 );
UPDATE t SET val = 8 WHERE id IN ( SELECT id FROM temp8 );
UPDATE t SET val = 9 WHERE id IN ( SELECT id FROM temp9 );
UPDATE t SET val = 10 WHERE id IN ( SELECT id FROM temp10 );
temps は私が使用する TEMPORARY テーブルで、テーブルには約 10,000 のエントリがあり、この SQL ステートメントの実行を完了するのに約 30 秒かかります。また、一時テーブルからのすべてのエントリの合計は、t のエントリ数に等しくなります。
これを最適化する方法についてアドバイスをいただけますか?
ありがとう。