web-dev-qa-db-ja.com

500MBのCSVファイルをmysqlデータベースにインポートする最良の方法は?

Mysqlデータベースにインポートする必要がある500MBのcsvファイルがあります。

CsvファイルをアップロードできるPHPスクリプトを作成し、フィールドを分析して実際のインポートを実行します。ただし、最大サイズの小さなファイルのみを処理できます。 5MB。だから、それは100ファイルであり、実際にはかなり遅い(アップロード)

別の方法はありますか?ファイル内のデータは毎月変化するため、毎月このプロセスを繰り返す必要があります。これは約12 000 000行です。

5
mars

ファイルに一貫した形式のCSVが含まれていることがわかっている場合(標準はないため、実稼働テーブルにインポートする前に広範囲にテストすることをお勧めします)、PHPを完全にスキップしてMySQLを使用できます LOAD DATA INFILE サーバーにデータをアップロードした後のステートメント。

(サーバー上のmysqlコンソールにすぐにアクセスできない場合、これは非常に単純なPHPスクリプトまたはphpMyAdminでも実行できます)

4
danlefree

これを行う最良の方法は次のとおりです。

  • [SQLyog]のような無料の「コミュニティ」バージョンがあるツールを使用すると、 here をダウンロードできます。
    有用なSQLyog FAQについて CSVデータのインポート

  • [SSH経由] [4]でインポートします(FTPを使用してデータベースダンプを転送し、実行するだけです
    mysql -p -u username database_name < file.sql

1
Boris Brdarić