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]