Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie kann ich MySQL LOAD DATA INFILE für schnellere Datenimporte optimieren?

Barbara Streisand
Freigeben: 2024-11-08 04:59:02
Original
869 Leute haben es durchsucht

How Can I Optimize MySQL LOAD DATA INFILE for Faster Data Imports?

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!

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