Se você ainda não tem um índice em
number
você deve adicionar um - CREATE INDEX table_number ON table (number);
ATUALIZAÇÃO Tente isso -
UPDATE inv t1
INNER JOIN inv t2
ON t1.name = t2.name
AND t1.id <> t2.id
SET t1.flag_qty = 1;
Você pode criar sua tabela apenas com as duplicatas selecionando esses dados diretamente em outra tabela, em vez de fazer essa atualização de sinalizador primeiro.
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
Se você puder explicar a lógica para quais linhas são excluídas de
inv
tabela pode ser que todo o processo possa ser feito em uma única etapa.