sql >> Databasteknik >  >> RDS >> Mysql

Snabbaste sättet att importera stor CSV-fil till MySql med MySql CLI

I det här inlägget kommer jag att dela det snabbaste sättet att importera stor CSV-fil till MySql med MySql CLI. Du kan ha laddat ner produktflöde eller någon annan rapport från andra källor, men filstorleken du har laddat ner är cirka 2 GB med 5 miljoner rader. Och letar efter det snabbaste sättet att importera denna enorma CSV-fil till din MySql-databas, då är det här inlägget för dig.



Att importera en stor .csv-fil på cirka 2 GB från PhpMyAdmin är mycket tråkig uppgift, och du kanske inte lyckas importera filen ordentligt. Du kan fasa anslutningstimeout, exekveringstimeoutfel. Att importera fil med http-port kommer att ta mycket tid. Så jag föreslår att du använder MySql CLI för att importera den här typen av enorma filer till din MySql-databas. Som du vet är kommandoraden det snabbaste sättet att göra uppgiften gjord. Här kommer jag att dela några MySql-frågor som hjälper dig att importera CSV-fil till din MySql-databas på några minuter.

Läs även : Hur man delar upp en stor csv-fil i mindre filer

Logga in på MySql-databasen med CLI

 mysql -u username -p dbname --local-infile

Efter att ha kört följande kommando kommer det att fråga efter databaslösenord, skriv lösenord och tryck enter och du kommer att logga in i ditt MySql-kommandogränssnitt, här kan du köra vilken fråga som helst, varje fråga går kvällsmat snabbt här, försök när du verkligen kan spara tid på att köra stora frågor.



MySql-fråga för att importera CSV-fil på kommandoraden

LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv'  INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';

Om du har tabbseparerad CSV-fil kan du använda följande fråga, bara byt ut FÄLT AVSLUTADE AV ',' från FÄLT AVSLUTADE AV '\t'

LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv'  INTO TABLE table_name FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n';

Om du bara vill att specifika kolumner behöver infogas från CSV-filen till MySql-databasen, använd följande fråga för att ignorera oönskade CSV-kolumner.

LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv'  INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@col1,@col2,@col3,@col4,@col5,@col6) set [email protected],[email protected], [email protected];

Där kol1,2,3,4,5,6 är CSV-filkolumnen @ kommer att ignorera alla kolumner förutom de databaskolumner som du har ställt in som [email protected],[email protected], [email protected]




  1. Fullständig lista över lokaler i MySQL

  2. hur man beräknar saldon i ett bokföringsprogram med postgres fönsterfunktion

  3. Microsoft Azure:Vad det är och hur ditt företag kan dra nytta av det

  4. Hur uppdaterar jag en rad i en tabell eller infogar den om den inte finns?