Heim  >  Artikel  >  Datenbank  >  Wie beschleunigt man den Datenimport in MySQL InnoDB und beendet langsame Abfragen?

Wie beschleunigt man den Datenimport in MySQL InnoDB und beendet langsame Abfragen?

Linda Hamilton
Linda HamiltonOriginal
2024-11-08 11:15:02583Durchsuche

How to Speed Up Data Import into MySQL InnoDB and Terminate Slow Queries?

Optimierung für blitzschnellen Datenimport mit MySQL

Abfrage:

Beim Import umfangreicher Daten Daten (ungefähr 3,6 Millionen Zeilen) mithilfe von „Daten in Datei laden“ in eine MySQL-InnoDB-Tabelle importieren, wie kann der Prozess beschleunigt werden? Wie kann außerdem eine langsame Abfrage beendet werden, ohne den MySQL-Dienst zu unterbrechen?

Lösung:

Beschleunigung des Datenimports:

Um den Datenimportprozess bei Verwendung von Innodb zu optimieren:

  • Sortieren Sie die Eingabedatei: Ordnen Sie die CSV-Datei in aufsteigender Reihenfolge basierend auf dem Primärschlüssel der Zieltabelle an. Die geclusterte Primärschlüsselstruktur von Innodb erhöht die Ladegeschwindigkeit beim Sortieren von Daten erheblich.
  • Optimiertes Ladeskript: Verwenden Sie das folgende Skript für einen optimalen Datenimport:
truncate <table>;

set autocommit = 0;

load data infile <path> into table <table>...

commit;
  • Tabellenoptimierungen: Verbessern Sie die Ladezeiten weiter, indem Sie diese Tabelleneinstellungen anpassen:
set unique_checks = 0;
set foreign_key_checks = 0;
set sql_log_bin=0;
  • Datenaufteilung: Teilen Sie die CSV Datei in kleinere Teile aufteilen, um die Importgeschwindigkeit zu verbessern.

Langsame Abfragebeendigung:

So beenden Sie eine langsame Abfrage, ohne MySQL neu zu starten:

  • Identifizieren Sie die Thread-ID der Abfrage mit:
SHOW PROCESSLIST;
  • Beenden Sie die Abfrage mit:
KILL <thread_ID>;

Leistungsstatistik:

Basierend auf der beobachteten Massenladeleistung:

  • Importrate: 3,5 - 6,5 Millionen Zeilen pro Minute
  • Stündliches Importvolumen: 210 - 400 Millionen Zeilen

Das obige ist der detaillierte Inhalt vonWie beschleunigt man den Datenimport in MySQL InnoDB und beendet langsame Abfragen?. 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