Optimieren der Leistung von MySQL LOAD DATA INFILE
Beim Importieren großer Datenmengen in MySQL-Tabellen mit dem Befehl LOAD DATA INFILE kann die Leistung beeinträchtigt werden erhebliche Sorge. Eine Herausforderung dabei ist der Kompromiss zwischen dem Import ohne Schlüssel, der zu einem schnelleren Laden der Daten, aber einer langsameren Schlüsselerstellung führen kann, und dem Import mit Schlüsseln, der den Importvorgang verlangsamt. Hier sind einige Strategien, um den Import zu beschleunigen:
Daten nach Primärschlüssel ordnen:
Bevor Sie die Daten laden, sortieren Sie Ihre CSV-Datei entsprechend der Primärschlüsselreihenfolge des Zieltabelle. Dies ist besonders bei der Verwendung von InnoDB von Vorteil, da gruppierte Primärschlüssel verwendet werden, was bedeutet, dass Daten beim Sortieren schneller geladen werden.
Einschränkungen deaktivieren:
Eindeutige und fremde Schlüssel vorübergehend deaktivieren Schlüsseleinschränkungen (set unique_checks = 0; set Foreign_key_checks = 0;), um die Importgeschwindigkeit zu verbessern. Sobald die Daten geladen sind, können Sie diese Einschränkungen wieder aktivieren (unique_checks = 1 festlegen; Foreign_key_checks = 1 festlegen;).
Binäre Protokollierung deaktivieren:
Binäre Protokollierung deaktivieren (set sql_log_bin=0;) kann auch die Importzeiten verlängern. Wenn diese Option aktiviert ist, protokolliert MySQL alle Schreibabfragen zu Replikationszwecken im Binärprotokoll. Durch die Deaktivierung werden Ressourcen freigegeben, die zum Laden von Daten verwendet werden können.
Tabelle abschneiden:
Vor dem Laden von Daten kürzen Sie die Zieltabelle, um alle vorhandenen Zeilen zu entfernen (abschneiden < ;Tabelle>;). Dadurch wird sichergestellt, dass es sich bei den Daten, die Sie importieren, um die einzigen Daten in der Tabelle handelt.
CSV-Datei aufteilen:
Wenn Ihre CSV-Datei sehr groß ist, sollten Sie sie aufteilen kleinere Stücke. Dadurch kann MySQL die Daten in kleineren Stapeln laden und so die für jeden Ladevorgang erforderliche Zeit reduzieren.
Langsame Abfragen beenden:
Um eine langsame Abfrage zu beenden, ohne MySQL neu zu starten , verwenden Sie den Befehl KILL QUERY. Dieser Befehl kann über die MySQL-Befehlszeile oder mit einem Tool wie phpMyAdmin ausgeführt werden.
Zusätzliche Tipps:
Das obige ist der detaillierte Inhalt vonWie kann ich die MySQL LOAD DATA INFILE-Leistung für große Datenimporte optimieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!