sql >> Database teknologi >  >> RDS >> Mysql

Hvordan kan jeg optimere MySQL-forespørgsel til opdatering?

Hvis du ikke allerede har et indeks på number du skal tilføje en -

CREATE INDEX table_number ON table (number);

OPDATERING Prøv dette -

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

Du kan oprette din tabel med kun dubletterne ved at vælge disse data direkte i en anden tabel i stedet for at foretage denne flagopdatering 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

Hvis du kan forklare logikken for hvilke rækker der slettes fra inv tabel kan det være, at hele processen kan udføres i ét trin.



  1. Den parametriserede forespørgsel ..... forventer parameteren '@units', som ikke blev leveret

  2. Hvordan opretter man forbindelse til Amazon RDS via SSL?

  3. php/mysql tilføje rækker sammen for at få total

  4. Tom database i MySQL og PHP?