sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo puedo optimizar la consulta de MySQL para la actualización?

Si aún no tiene un índice en number deberías agregar uno -

CREATE INDEX table_number ON table (number);

ACTUALIZAR Prueba esto -

UPDATE inv t1
INNER JOIN inv t2
    ON t1.name = t2.name
    AND t1.id <> t2.id
SET t1.flag_qty = 1;

Puede crear su tabla solo con los duplicados seleccionando estos datos directamente en otra tabla en lugar de hacer esta actualización de marca primero.

INSERT INTO duplicate_invs
SELECT DISTINCT inv1.*
FROM inv AS inv1
INNER JOIN inv AS inv2
    ON inv1.name = inv2.name
    AND inv1.id < inv2.id

Si puede explicar la lógica por la cual las filas se eliminan de inv tabla puede ser que todo el proceso se pueda hacer en un solo paso.