SqlServerのデータを CSV経由で MySQLにインポート

SqlServerで作成した10,000件ほどのデータを CSV経由で MySQLにインポートしてみました。

テーブルのFieldは以下の通り

コード varchr(14)
SEQ int
フラグ int
登録日時 DateTime
削除日時 DateTime

  1. SqlServerから データをエクスポート
    Exportしたデータは
    データ区切り = CrLf
    項目区切り  = カンマ
    例)
    HOGEHOGEHOGEHO,1,0,2014-09-10 11:29:27.500000000,2014-09-10 11:33:04.730000000処理時間 アッという間
  2. IIS上の phpMyAdminを使ってインポート
    1.でエクスポートしたファイルを指定し フォーマットをCSV形式を指定し 実行
    自分のマシンでは数分で2500件ほど登録したところで FastCGI云々のタイムオーバーで エラー
  3. XAMPP上の phpMyAdminを使ってインポート
    同じく 数分で5000件ほど登録したところで タイムオーバーで エラー
  4. 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

スポンサーリンク
Rectangle大広告
Rectangle大広告

シェアする

  • このエントリーをはてなブックマークに追加

フォローする