MySQL LOAD DATA INFILE für einen schnellen Datenimport optimieren
Das Importieren großer Datenmengen in MySQL mithilfe von LOAD DATA INFILE kann zeitaufwändig sein, insbesondere wenn Erstellen von Indizes nach dem Import. In diesem Artikel werden verschiedene Techniken untersucht, um den Prozess zu beschleunigen und das Problem anzugehen, dass beendete Abfragen weiterhin in der Datenbank ausgeführt werden.
Beschleunigung von LOAD DATA INFILE
Berücksichtigen Sie dies bei InnoDB-Tabellen die folgenden Optimierungstipps:
-
Sortieren Sie die CSV-Datei in der Reihenfolge der Primärschlüssel: InnoDB verwendet geclusterte Primärschlüssel, sodass das Sortieren der Datei den Ladevorgang erheblich beschleunigt.
-
Tabelle vor dem Laden abschneiden:Entfernen Sie vorhandene Daten, um den Zeitaufwand für Lesen und Schreiben zu minimieren.
-
Autocommit deaktivieren:Setzen Sie Autocommit=0, um das Transaktions-Commit zu verzögern Bis nach dem gesamten Import, wodurch die Anzahl der Commits reduziert und die Leistung verbessert wird.
-
Prüfungen deaktivieren: Prüfungen auf eindeutige und fremde Schlüssel vorübergehend deaktivieren, indem Sie „set unique_checks=0“ und „foreign_key_checks=0“ verwenden.
-
Binäre Protokollierung deaktivieren: Unterbrechen Sie die binäre Protokollierung mit set sql_log_bin=0, um den mit dem Schreiben von Protokollen verbundenen Aufwand zu vermeiden.
-
CSV-Datei in Blöcke aufteilen: Teilen Sie die CSV-Datei zum schnelleren Laden in kleinere Segmente aufteilen.
Abfragen beenden
Um eine langsame Abfrage zu beenden, ohne MySQL neu zu starten, versuchen Sie Folgendes:
-
KILL-Befehl: Geben Sie den KILL-Befehl {query_id} aus, um die spezifische Abfrage zu beenden.
-
Client-Verbindung schließen: Erzwingen Sie das Schließen des Terminalfensters, in dem die Abfrage ausgeführt wird ausgeführt wurde, stoppt auch die laufende Abfrage. Dies kann jedoch zu Datenbeschädigungen oder Inkonsistenzen führen.
Durch die Anwendung dieser Optimierungen können Sie die Leistung von LOAD DATA INFILE erheblich verbessern und den Datenimportprozess rationalisieren.
Das obige ist der detaillierte Inhalt vonWie kann ich MySQL LOAD DATA INFILE für schnellere Datenimporte optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!