MySQL-Tabelle von einer anderen basierend auf dem Wert aktualisieren
Sie möchten eine zu aktualisierende MySQL-Tabelle mühelos mit Werten aus einer anderen Tabelle aktualisieren , 'original', basierend auf übereinstimmenden Zeichenfolgen, die in einem VARCHAR(32)-Feld gespeichert sind, 'Wert.'
Erste Abfragen und Leistungsbedenken
Zunächst haben Sie versucht, die folgende Abfrage zu aktualisieren, um „tobeupdated“ zu aktualisieren:
UPDATE tobeupdated, original SET tobeupdated.id = original.id WHERE tobeupdated.value = original.value
While Obwohl diese Abfrage erfolgreich war, erwies sie sich als langsam und verarbeitete nur einen kleinen Teil der gewünschten Daten Aktualisierungen.
Optimierte Abfrage
Um die Leistung zu verbessern, sollten Sie die folgende optimierte Abfrage in Betracht ziehen:
UPDATE tobeupdated INNER JOIN original ON (tobeupdated.value = original.value) SET tobeupdated.id = original.id
Grundlegendes zur optimierten Abfrage
Die Syntax „INNER JOIN“ ermöglicht einen effizienteren Datenabruf durch explizite Angabe des Joins Zustand zwischen den beiden Tabellen. Darüber hinaus beschleunigt die Indizierung der Felder „tobeupdated.value“ und „original.value“ die Verarbeitung erheblich.
Vereinfachte Abfrage
Für eine noch einfachere Lösung können Sie die verwenden 'USING'-Klausel:
UPDATE tobeupdated INNER JOIN original USING (value) SET tobeupdated.id = original.id
'USING' vereinfacht einen Equi-Join, indem Spalten automatisch mit denselben abgeglichen werden Namen in beiden Tabellen. In diesem Fall verfügen sowohl „tobeupdated“ als auch „original“ über eine „Wert“-Spalte.
Zusätzliche Überlegungen
Stellen Sie eine angemessene Indexabdeckung für relevante Spalten sicher, um die Leistung zu optimieren. Wenn die Tabellen außergewöhnlich groß sind, sollten Sie erwägen, eine dritte Tabelle für die zusammengeführten Ergebnisse zu erstellen, obwohl dies nicht unbedingt die Geschwindigkeit verbessern muss.
Das obige ist der detaillierte Inhalt vonWie kann ich eine MySQL-Tabelle basierend auf übereinstimmenden Werten in einer anderen Tabelle effizient aktualisieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!