SqlServerで作成した10,000件ほどのデータを CSV経由で MySQLにインポートしてみました。
テーブルのFieldは以下の通り
コード | varchr(14) |
SEQ | int |
フラグ | int |
登録日時 | DateTime |
削除日時 | DateTime |
- SqlServerから データをエクスポート
Exportしたデータは
データ区切り = CrLf
項目区切り = カンマ
例)
HOGEHOGEHOGEHO,1,0,2014-09-10 11:29:27.500000000,2014-09-10 11:33:04.730000000処理時間 アッという間 - IIS上の phpMyAdminを使ってインポート
1.でエクスポートしたファイルを指定し フォーマットをCSV形式を指定し 実行
自分のマシンでは数分で2500件ほど登録したところで FastCGI云々のタイムオーバーで エラー - XAMPP上の phpMyAdminを使ってインポート
同じく 数分で5000件ほど登録したところで タイムオーバーで エラー - mysqlの LOAD DATA INFILE コマンドでインポート
コマンドプロンプトを開き、
・ MySQLのインストールフォルダに移動
・ binフォルダに移動
・ データベースに接続
c:\mysql\bin>mysql -u root -p hogeDB
Enter password: pwd
・ インポート指定
mysql> LOAD DATA INFILE ‘c:\\hogehoge.txt’ ← 入力ファイルフルパス
-> INTO TABLE hogehogetbl ← テーブル名
-> FIELDS TERMINATED BY ‘,’ ← 項目区切りカンマ
-> LINES TERMINATED BY ‘\r\n’; ← レコード区切り 改行実行結果は 正常 しかも所要時間は なんと 0.7秒!!!
まとまった件数のデータを扱うには phpAdminは不向き
参照URL
http://phpjavascriptroom.com/?t=mysql&p=mysqlimport#a_load_data_infile