この投稿では、MySqlCLIを使用して大きなCSVファイルをMySqlにインポートする最速の方法を共有します。他のソースから製品フィードまたは他のレポートをダウンロードした可能性がありますが、ダウンロードしたファイルサイズは約2GB、500万行です。そして、この巨大なCSVファイルをMySqlデータベースにインポートする最速の方法を探しています。この投稿はあなたにぴったりです。
PhpMyAdminから約2GBの大きな.csvファイルをインポートするのは非常に簡単です面倒な作業です。また、ファイルを正しくインポートできない場合があります。接続タイムアウト、実行タイムアウトエラーを段階的に実行できます。 httpポートを使用してファイルをインポートするには、かなりの時間がかかります。したがって、MySql CLIを使用して、このタイプの巨大なファイルをMySqlデータベースにインポートすることをお勧めします。ご存知のように、コマンドラインはタスクを実行するための最速の方法です。ここでは、CSVファイルをMySqlデータベースに数分でインポートするのに役立ついくつかのMySqlクエリを共有します。
また読む: 大きなcsvファイルを小さなファイルに分割する方法
CLIを使用してMySqlデータベースにログインします
mysql -u username -p dbname --local-infile |
次のコマンドを実行した後、データベースパスワードを要求し、パスワードを入力してEnterキーを押すと、MySqlコマンドインターフェイスにログインします。ここで任意のクエリを実行できます。各クエリはここで高速に実行されます。時間を節約できるようになったら試してください。大きなクエリの実行について。
CSVファイルのコマンドラインをインポートするためのMySqlクエリ
LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n'; |
タブ区切りのCSVファイルがある場合は、次のクエリを使用できます。フィールドは「、」で終了します 「\t」で終了したフィールドから
LOAD DATA LOCAL INFILE 'csv_file_path/filename.csv' INTO TABLE table_name FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'; |
特定の列のみをCSVファイルからMySqlデータベースに挿入する必要がある場合は、次のクエリを使用して不要な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]; |
ここで、col1,2,3,4,5,6はCSVファイルの列 @です。 example @ sqldat.com、example @ sqldat.com、example @ sqldat.comのように設定したデータベース列を除くすべての列を無視します