Я пытаюсь обновить одну таблицу 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
Это увеличивает мой ЦП и в конечном итоге приводит к таймаутутолько часть выполненных обновлений (есть несколько тысяч значений для соответствия).Я знаю, что сопоставление на value
будет медленным, но это единственные данные, которые я должен сопоставить их вместе.
Есть ли лучший способ для обновления значений, подобных этому?Я мог бы создать третью таблицу для объединенных результатов, если бы это было быстрее?
Я пытался MySQL - Как я могу обновить таблицу значениями из другой таблицы? , но это не такэто действительно помогает.Есть идеи?
Заранее спасибо за помощь новичку MySQL!