Verwenden Sie immer noch „for“- oder „while“-Schleifen, um Ihre Zeilen zu durchlaufen und sie in Ihre Datenbank einzufügen? Schreiben Sie immer noch separaten Code zum Lesen der CSV-Datei und zum Hochladen in Ihre MySQL-Datenbank?
Sagen Sie „NEIN“ zur linearen Logik mit der von MySQL bereitgestellten „LOAD DATA“-Anweisung. Bereiten Sie sich darauf vor, Ihren Code zu ändern, um sowohl die Zeilen zu minimieren als auch die Leistung drastisch zu steigern.
MySql bietet die LOAD DATA-Anweisung, die eine sehr schnelle Möglichkeit ist, die Daten aus Textdateien zu lesen und sie mit sehr wenig Code in eine Tabelle einzufügen.
Gemäß den offiziellen Dokumenten von MySQL wird die LOAD DATA-Anweisung verwendet, um Daten sehr schnell aus der Datei zu lesen, und Sie können diese Daten mit einer einzigen Abfrage in Ihre Tabelle einfügen, anstatt mehrere Datenbanken aufzurufen mal mit „INSERT INTO“ Abfrage.
MySQL bietet auch eine Anweisung -> „SELECT…INTO OUTFILE“, was genau das Gegenteil von dem bewirkt, was „LOAD DATA“ bewirkt, nämlich die Datenaus der Tabelle in die Dateieinzulesen.
Das von MySql bereitgestellte Dienstprogramm mysqlimport ruft intern die LOAD DATA-Anweisung auf dem Server auf, um die Daten zu importieren.
Der obige Kernausschnitt zeigt die allgemeinen Lastdatenanweisungen. Alle verfügbaren Optionen sind im obigen Code aufgeführt.
Konzentrieren wir uns nun auf ein einfaches Beispiel für das einfache Lesen einer CSV-Datei und das Einfügen ihrer Zeilen in eine kompatible Tabelle.
Ein einfaches Beispiel :
LOAD DATA INFILE ‘data.csv’ INTO TABLE db.my_table
Ein Beispiel aus der Vogelperspektive mit allen wesentlichen Optionen :
Natürlich muss Ihre CSV-Datei richtig formatiert sein, damit diese Anweisung funktioniert?.
Und voilà, mit der obigen Anweisung wird Ihre CSV-Datei mit mehr als 100.000 Zeilen in Sekundenschnelle in Ihre Tabelle importiert.
Nun einige wichtige Dinge, die Sie beachten sollten:
Die obige Anweisung wird auf MySQL-Ebene ausgeführt, daher werden die Quelldateien vom Client auf den Server kopiert, um sie zu importieren.
Dies wirft einige Sicherheitsprobleme auf. Wir müssen sicherstellen, dass die Client-Server-Verbindung bei der Verwendung dieses Codes gesichert ist.In MySql 8.0 ist die Fähigkeit zur Verwendung von LOCAL standardmäßig auf False gesetzt. Da Ihr Server und Client so konfiguriert sein sollten, dass LOCAL zulässig ist, erhalten einige von Ihnen möglicherweise einen Berechtigungsfehler.
Im Falle eines Berechtigungsfehlers müssen wir ihn überschreiben, indem wirlocal_infile:
aktivieren
SET GLOBAL local_infile = true;
Hinweis: Das Überschreiben dieses Flags stellt keine Sicherheitslösung dar, sondern ist vielmehr eine Anerkennung dafür, dass Sie die Risiken akzeptieren. Weitere Informationen finden Sie in dieser Dokumentation.
MySql LOAD DATA-Anweisung wird verwendet, um Dateien innerhalb kürzester Zeit zu lesen.
Sie können diesen Code mit jeder Backend-API verwenden, um die Quelldatei bereitzustellen.
Die Quelldatei kann eine beliebige Textdatei sein. In diesem Beispiel haben wir .csv verwendet.
LOAD DATA LOCALkopiert die Quelldatei über MySql auf Ihren Server, daher sollten serverseitige Sicherheitsmaßnahmen implementiert werden.
mysqlimportDas Dienstprogramm verwendet intern die LOAD DATA-Anweisung.
Sie können die Überschriften in CSV ignorieren, indem Sie in der AnweisungIGNORE 1 LINEShinzufügen.
Offizielle Dokumente
Das obige ist der detaillierte Inhalt vonWie lade ich CSV-Dateidaten in großen Mengen in MySql Table hoch? Eine sehr schnelle Möglichkeit mit LOAD DATA.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!