V tomto příspěvku budu sdílet nejrychlejší způsob, jak importovat velký soubor CSV do MySql pomocí MySql CLI. Možná jste si stáhli produktový zdroj nebo jakoukoli jinou zprávu z jiných zdrojů, ale velikost souboru, který jste stáhli, je přibližně 2 GB s 5 miliony řádků. A hledáte nejrychlejší způsob, jak importovat tento obrovský soubor CSV do vaší databáze MySql, pak je tento příspěvek pro vás.
Import velkého souboru .csv o velikosti přibližně 2 GB z PhpMyAdmin je velmi zdlouhavý úkol a možná nebudete schopni správně importovat soubor. Můžete fázovat časový limit připojení, chyba časového limitu provedení. Import souboru pomocí portu http zabere hodně času. Proto vám doporučuji použít MySql CLI k importu tohoto typu velkého souboru do vaší databáze MySql. Jak víte, příkazový řádek je nejrychlejší způsob, jak provést úkol. Zde se podělím o několik dotazů MySql, které vám pomohou importovat soubor CSV do vaší databáze MySql během několika minut.
Přečtěte si také: Jak rozdělit velký soubor csv na menší soubory
Přihlaste se do databáze MySql pomocí CLI
mysql -u username -p dbname --local-infile |
Po spuštění následujícího příkazu se zeptá na heslo databáze, napíšete heslo a stisknete enter a přihlásíte se do příkazového rozhraní MySql, Zde můžete spustit jakýkoli dotaz, každý dotaz zde běží rychle k večeři, zkuste to, jakmile opravdu ušetříte čas při spouštění velkých dotazů.
Dotaz MySql pro import souboru CSV z příkazového řádku
LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; |
Pokud máte soubor CSV oddělený tabulátory, můžete použít následující dotaz, stačí nahradit FIELDS TERMINATED BY ‚,‘ z POLÍ UKONČENÝCH „\t“
LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; |
Pokud chcete do databáze MySql vložit pouze konkrétní sloupec ze souboru CSV, použijte následující dotaz k ignorování nežádoucích sloupců CSV.
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]; |
Kde col1,2,3,4,5,6 jsou sloupce souboru CSV @ bude ignorovat všechny sloupce kromě těch databázových, které jste nastavili jako [email protected],[email protected], [email protected]