Я намагаюся оновити одну таблицю 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
from 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!