Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie lade ich CSV-Dateidaten in großen Mengen in MySql Table hoch? Eine sehr schnelle Möglichkeit mit LOAD DATA.

PHPz
Freigeben: 2024-08-19 16:40:13
Original
339 Leute haben es durchsucht

? Einführung

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.

? Was ist die LOAD DATA INFILE-Anweisung?

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.

? Wie benutzt man es?

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
Nach dem Login kopieren

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:


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“ eingestellt. 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 wir
local_infile

:
SET GLOBAL local_infile = true;
Nach dem Login kopieren
aktivieren

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.

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.

LOKALE DATEN LADEN

kopiert die Quelldatei über MySql auf Ihren Server, daher sollten serverseitige Sicherheitsmaßnahmen implementiert werden. Das Dienstprogramm

mysqlimport

verwendet intern die LOAD DATA-Anweisung. Sie können die Kopfzeilen in CSV ignorieren, indem Sie

IGNORE 1 LINES

in der Anweisung hinzufügen.How to Bulk Upload CSV file data into MySql Table? A very fast way using LOAD DATA.

? Referenz

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!

Quelle:dev.to
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage