Jeśli nie masz jeszcze indeksu na number
powinieneś dodać jeden -
CREATE INDEX table_number ON table (number);
AKTUALIZUJ Spróbuj tego -
UPDATE inv t1
INNER JOIN inv t2
ON t1.name = t2.name
AND t1.id <> t2.id
SET t1.flag_qty = 1;
Możesz utworzyć swoją tabelę tylko z duplikatami, wybierając te dane bezpośrednio do innej tabeli, zamiast najpierw aktualizować flagę.
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
Jeśli możesz wyjaśnić logikę, dla której wiersze są usuwane z inv
tabeli może się zdarzyć, że cały proces można wykonać w jednym kroku.