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!