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.
Laut 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 mehrmals auf Ihre Datenbank zuzugreifen 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 Daten aus der Tabelle in die Datei einzulesen.
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:
Unnötig zu sagen, dass Ihre CSV-Datei richtig formatiert sein sollte, 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:In MySql 8.0 ist die Fähigkeit zur Verwendung von LOCAL standardmäßig auf „False“ eingestellt. Da Ihr Server und Client so konfiguriert sein sollten, dass LOCAL zulässig ist, erhalten einige von Ihnen möglicherweise einen Berechtigungsfehler.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.
Im Falle eines Berechtigungsfehlers müssen wir ihn überschreiben, indem wir
local_infile
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.
?? Abschluss
MySql LOAD DATA-Anweisung wird verwendet, um Dateien innerhalb kürzester Zeit zu lesen.
Die Quelldatei kann eine beliebige Textdatei sein. In diesem Beispiel haben wir .csv verwendet.
LOKALE DATEN LADENkopiert die Quelldatei über MySql auf Ihren Server, daher sollten serverseitige Sicherheitsmaßnahmen implementiert werden. Das Dienstprogramm
mysqlimportverwendet intern die LOAD DATA-Anweisung. Sie können die Kopfzeilen in CSV ignorieren, indem Sie
IGNORE 1 LINESin der Anweisung hinzufügen.
? Referenz
Offizielle DokumenteDas 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!