sql >> Database >  >> RDS >> Mysql

Snelste manier om grote CSV-bestanden in MySql te importeren met MySql CLI

In dit bericht ga ik de snelste manier delen om een ​​groot CSV-bestand in MySql te importeren met MySql CLI. Je hebt misschien een productfeed of een ander rapport van andere bronnen gedownload, maar de bestandsgrootte die je hebt gedownload is ongeveer 2 GB met 5 miljoen rijen. En op zoek naar de snelste manier om dit enorme CSV-bestand in uw MySql-database te importeren, dan is dit bericht iets voor u.



Het importeren van een groot .csv-bestand van ongeveer 2 GB van PhpMyAdmin is erg vervelende taak, en het is mogelijk dat u er niet in slaagt om het bestand correct te importeren. U kunt de time-out van de verbinding, de time-outfout bij de uitvoering faseren. Het importeren van een bestand met de http-poort kost veel tijd. Dus ik raad je aan om MySql CLI te gebruiken om dit type enorm bestand in je MySql-database te importeren. Zoals u weet, is de opdrachtregel de snelste manier om een ​​taak uit te voeren. Hier ga ik enkele MySql-query's delen die u helpen om binnen enkele minuten een CSV-bestand in uw MySql-database te importeren.

Lees ook: Hoe een groot csv-bestand in kleinere bestanden te splitsen

Log in op MySql-database met behulp van CLI

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

Na het uitvoeren van de volgende opdracht zal het om het databasewachtwoord vragen, het wachtwoord typen en op enter drukken en u logt in op uw MySql-opdrachtinterface. Hier kunt u elke query uitvoeren, elke query wordt hier supersnel uitgevoerd, probeer het een keer, u kunt echt tijd besparen bij het uitvoeren van grote zoekopdrachten.



MySql-query om de opdrachtregel van het CSV-bestand te importeren

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

Als u een door tabs gescheiden CSV-bestand heeft, kunt u de volgende zoekopdracht gebruiken, vervang gewoon FIELDS TERMINATED BY ',' van VELDEN BEINDIGD DOOR '\t'

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

Als u wilt dat alleen een specifieke kolom van het CSV-bestand naar de MySql-database hoeft te gaan, gebruik dan de volgende zoekopdracht om ongewenste CSV-kolommen te negeren.

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];

Waar col1,2,3,4,5,6 de CSV-bestandskolom @ . is negeert alle kolommen behalve die databasekolommen die u hebt ingesteld zoals [email protected],[email protected], [email protected]




  1. Snel verschillende waarden vinden

  2. Hoe om te gaan met Ruby on Rails-fout:installeer de postgresql-adapter:`gem install activerecord-postgresql-adapter'

  3. Opgeslagen T-SQL-procedure die meerdere id-waarden accepteert

  4. Ter verdediging van sar (en hoe het te configureren)