sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag optimera MySQL-frågan för uppdatering?

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.



  1. Hur infogar man specialtecken i en databas?

  2. Problemuppsättning 1 – Identifiera enheter

  3. mysql show Antal rader från andra tabeller i varje rad

  4. PHP MySQL-fråga infogas inte