sql >> Databáze >  >> RDS >> Mysql

Jak mohu optimalizovat dotaz MySQL pro aktualizaci?

Pokud ještě nemáte index na number měli byste přidat jeden -

CREATE INDEX table_number ON table (number);

AKTUALIZACE Zkuste toto -

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

Svou tabulku můžete vytvořit pouze s duplikáty tak, že tato data vyberete přímo do jiné tabulky, místo abyste nejprve provedli tuto aktualizaci příznaku.

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

Pokud můžete vysvětlit logiku, kvůli které jsou řádky odstraněny z inv je možné, že celý proces lze provést v jednom kroku.



  1. Více sloupců v MATCH PROTI

  2. ORDER BY Color s Hex kódem jako kritériem v MySQL

  3. Použijte slib ke zpracování návratové hodnoty MySQL v node.js

  4. Zámek na úrovni stolu v režimu spánku