あるMySQLテーブルを別のテーブルからの情報に基づいて更新しようとしています。
私のoriginalテーブルは次のようになります:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
そして、tobeupdatedテーブルは次のようになります。
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
私は更新するidにtobeupdatedしてidからoriginalに基づくvalue(に保存された文字列VARCHAR(32)フィールド)。
更新されたテーブルは次のようになります。
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
機能するクエリがありますが、非常に低速です。
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
これは私のCPUを使い果たし、最終的には実行される更新の一部のみでタイムアウトにつながります(一致する数千の値があります)。私は照合valueが遅いことを知っていますが、これらを一緒に照合しなければならない唯一のデータです。
このような値を更新するより良い方法はありますか?マージされた結果用の3番目のテーブルを作成することができますか?
MySQLを試しました-別のテーブルの値でテーブルを更新するにはどうすればよいですか?、しかしそれは本当に助けにはならなかった。何か案は?
MySQLの初心者を支援してくれてありがとう!