Heim >Datenbank >MySQL-Tutorial >Wie simuliere ich ein DUPLICATE KEY UPDATE mit MySQLs LOAD DATA INFILE?

Wie simuliere ich ein DUPLICATE KEY UPDATE mit MySQLs LOAD DATA INFILE?

Linda Hamilton
Linda HamiltonOriginal
2024-12-15 13:15:18756Durchsuche

How to Simulate ON DUPLICATE KEY UPDATE with MySQL's LOAD DATA INFILE?

Emulation von ON DUPLICATE KEY UPDATE mit MySQL LOAD DATA INFILE

Trotz seines Geschwindigkeitsvorteils beim Laden großer Datenmengen in MySQL fehlt LOAD DATA INFILE die native Funktionalität Unterstützung für die ON DUPLICATE KEY UPDATE-Funktionalität. Diese Einschränkung stellt eine Herausforderung dar, wenn vorhandene Datensätze aktualisiert werden, ohne Auto-Inkrement-IDs zu ersetzen oder unnötigen Overhead zu verursachen.

Lösung:

Um ON DUPLICATE KEY UPDATE mit LOAD DATA INFILE zu emulieren, Sie können diesen Schritten folgen:

  1. Erstellen Sie ein Temporäres Tabelle: Erstellen Sie mit CREATE TEMPORARY TABLE eine temporäre Tabelle mit der gleichen Struktur wie die Zieltabelle.
  2. Optional optimieren: Um den Prozess zu beschleunigen, deaktivieren Sie Indizes in der temporären Tabelle, indem Sie Folgendes ausführen DROP INDEX-Befehle für alle vorhandenen Indizes.
  3. Daten in temporäre Indizes laden Tabelle:Verwenden Sie LOAD DATA INFILE, um die CSV-Daten in die temporäre Tabelle zu importieren, und geben Sie dabei geeignete Feldtrennzeichen und Einschlüsse an.
  4. Übertragen Sie Daten mit ON DUPLICATE KEY UPDATE:Verwenden Sie eine INSERT-Anweisung mit ON DUPLICATE KEY UPDATE, um Daten aus der temporären Tabelle in die Zieltabelle zu kopieren. Stellen Sie sicher, dass die Spaltennamen korrekt übereinstimmen.
  5. Temporäre Tabelle löschen: Geben Sie die temporäre Tabelle frei, indem Sie DROP TEMPORARY TABLE ausführen.

Dieser Ansatz nutzt die Geschwindigkeit von LOAD DATA INFILE bei gleichzeitiger Emulation der Funktionalität von ON DUPLICATE KEY UPDATE. Durch die Automatisierung des Prozesses mit SHOW INDEX FROM und SHOW COLUMNS FROM können Sie ihn problemlos an jede beliebige Tabelle anpassen.

Das obige ist der detaillierte Inhalt vonWie simuliere ich ein DUPLICATE KEY UPDATE mit MySQLs LOAD DATA INFILE?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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