Om du inte redan har ett index på number
du bör lägga till en -
CREATE INDEX table_number ON table (number);
UPPDATERA Prova detta -
UPDATE inv t1
INNER JOIN inv t2
ON t1.name = t2.name
AND t1.id <> t2.id
SET t1.flag_qty = 1;
Du kan skapa din tabell med bara dubbletterna genom att välja dessa data direkt i en annan tabell istället för att göra denna flagguppdatering först.
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
Om du kan förklara logiken för vilka rader som tas bort från inv
tabell kan det vara så att hela processen kan göras i ett steg.