Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak mogę zoptymalizować zapytanie MySQL pod kątem aktualizacji?

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać identyfikator po wstawieniu do bazy danych MySQL za pomocą Pythona?

  2. Jak wstawiać, usuwać, wybierać, aktualizować wartości w datagridview w C# za pomocą MYSQL

  3. Jak dopasować parzyste lub nieparzyste liczby liter za pomocą wyrażenia regularnego dla mysql

  4. MySQL zmienia UTF-8 na ASCII-8BIT

  5. Dlaczego LEFT JOIN jest wolniejszy niż INNER JOIN?