sql >> Databáze >  >> RDS >> Mysql

Nejrychlejší způsob importu velkého souboru CSV do MySql pomocí MySql CLI

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]




  1. Nastavení a použití pgmemcache

  2. ORA-00907:chybí pravá závorka

  3. Hodnota pole spojit na řetězec v SQL Server

  4. Transakce nefungují pro moji databázi MySQL