Heim >Datenbank >MySQL-Tutorial >Wie kann ich MySQL-Tabellenwerte aus einer anderen Tabelle effizient aktualisieren?
Die Aufgabe besteht darin, die zu aktualisierende Tabelle mit Daten aus der Originaltabelle basierend auf dem Abgleich zu aktualisieren Werte, die in einem VARCHAR(32)-Feld gespeichert sind. Die aktuelle Abfrage ist zwar funktionsfähig, weist jedoch Leistungsprobleme auf.
Um die Leistung zu verbessern, ziehen Sie die folgende optimierte Abfrage in Betracht:
UPDATE tobeupdated INNER JOIN original ON (tobeupdated.value = original.value) SET tobeupdated.id = original.id
Diese Abfrage nutzt die JOIN-Syntax anstelle mehrerer WHERE-Bedingungen, was die Lesbarkeit erleichtert. Stellen Sie außerdem sicher, dass in beiden Tabellen Indizes für das Wertfeld erstellt wurden, um schnellere Suchvorgänge während des Join-Vorgangs zu ermöglichen.
Zur weiteren Optimierung eine vereinfachte Version der Abfrage mit dem Schlüsselwort USING wird empfohlen:
UPDATE tobeupdated INNER JOIN original USING (value) SET tobeupdated.id = original.id
Das Schlüsselwort USING wird verwendet, wenn beide Tabellen in einem Join einen identisch benannten Schlüssel (wie in diesem Fall id) gemeinsam nutzen, der einen bezeichnet Equi-Join-Optimierung.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL-Tabellenwerte aus einer anderen Tabelle effizient aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!