Estoy intentando actualizar una tabla MySQL en función de la información de otra.
Mi originalmesa se parece a:
id | value
------------
1 | hello
2 | fortune
3 | my
4 | old
5 | friend
Y la tobeupdatedmesa se ve así:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | | old
4 | | friend
5 | | fortune
Quiero actualizar iden tobeupdatedel idde originalbase en value(cadenas almacenadas en el VARCHAR(32)campo).
Con suerte, la tabla actualizada se verá así:
uniqueid | id | value
---------------------
1 | | something
2 | | anything
3 | 4 | old
4 | 5 | friend
5 | 2 | fortune
Tengo una consulta que funciona, pero es muy lenta:
UPDATE tobeupdated, original
SET tobeupdated.id = original.id
WHERE tobeupdated.value = original.value
Esto maximiza mi CPU y eventualmente conduce a un tiempo de espera con solo una fracción de las actualizaciones realizadas (hay varios miles de valores para coincidir). Sé que la comparación valueserá lenta, pero estos son los únicos datos que tengo para combinarlos.
¿Existe una mejor manera de actualizar valores como este? Podría crear una tercera tabla para los resultados combinados, si fuera más rápido.
Probé MySQL - ¿Cómo puedo actualizar una tabla con valores de otra tabla? , pero realmente no ayudó. ¿Algunas ideas?
¡Gracias de antemano por ayudar a un principiante de MySQL!