Heim > Datenbank > MySQL-Tutorial > Wie kann ich eine MySQL-Tabelle basierend auf übereinstimmenden Werten in einer anderen Tabelle effizient aktualisieren?

Wie kann ich eine MySQL-Tabelle basierend auf übereinstimmenden Werten in einer anderen Tabelle effizient aktualisieren?

Linda Hamilton
Freigeben: 2025-01-05 12:14:38
Original
809 Leute haben es durchsucht

How Can I Efficiently Update a MySQL Table Based on Matching Values in Another Table?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

'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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage