sql >> データベース >  >> RDS >> Mysql

MySqlCLIを使用して大きなCSVファイルをMySqlにインポートする最速の方法

    この投稿では、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のように設定したデータベース列を除くすべての列を無視します




    1. PostgreSQLのジャストインタイムコンパイル(JIT)の概要

    2. 同じマシン上に複数のPostgresインスタンスを作成する

    3. エンティティで主キーのないビューを使用する

    4. varcharsql開発者から先行ゼロを削除する