Dans cet article, je vais partager le moyen le plus rapide d'importer un gros fichier CSV dans MySql à l'aide de MySql CLI. Vous avez peut-être téléchargé un flux de produits ou tout autre rapport provenant d'autres sources, mais la taille du fichier que vous avez téléchargé est d'environ 2 Go avec 5 millions de lignes. Et à la recherche du moyen le plus rapide d'importer cet énorme fichier CSV dans votre base de données MySql, alors cet article est pour vous.
Importer un gros fichier .csv d'environ 2 Go depuis PhpMyAdmin est très tâche fastidieuse, et vous ne pourrez peut-être pas réussir à importer correctement le fichier. Vous pouvez mettre en phase le délai d'expiration de la connexion, l'erreur d'expiration du délai d'exécution. L'importation de fichiers à l'aide du port http prendra beaucoup de temps. Je vous suggère donc d'utiliser MySql CLI pour importer ce type de fichier volumineux dans votre base de données MySql. Comme vous le savez, la ligne de commande est le moyen le plus rapide d'accomplir une tâche. Ici, je vais partager quelques requêtes MySql qui vous aident à importer un fichier CSV dans votre base de données MySql en quelques minutes.
Lire aussi : Comment diviser un gros fichier csv en fichiers plus petits
Connectez-vous à la base de données MySql à l'aide de la CLI
mysql -u username -p dbname --local-infile |
Après avoir exécuté la commande suivante, il vous demandera le mot de passe de la base de données, tapez le mot de passe et appuyez sur Entrée et vous vous connecterez à votre interface de commande MySql. Ici, vous pouvez exécuter n'importe quelle requête, chaque requête s'exécute rapidement ici, essayez une fois que vous pourriez vraiment gagner du temps. sur l'exécution de grandes requêtes.
Requête MySql pour importer la ligne de commande du fichier CSV
LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; |
Si vous avez un fichier CSV séparé par des tabulations, vous pouvez utiliser la requête suivante en remplaçant simplement FIELDS TERMINATED BY ',' de CHAMPS TERMINÉS PAR ‘\t’
LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; |
Si vous souhaitez que seule une colonne spécifique soit insérée du fichier CSV dans la base de données MySql, utilisez la requête suivante pour ignorer les colonnes CSV indésirables.
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]; |
Où col1,2,3,4,5,6 sont la colonne du fichier CSV @ ignorera toutes les colonnes sauf celles de la base de données que vous avez définies comme [email protected],[email protected], [email protected]