【MySQL】mysqlimportを使ってファイルの情報を高速取込
-
カテゴリ:
- DB
-
タグ:
- #MySQL
MySQLにはファイルの情報を高速に取り込む仕組みがいくつかあります。
そのうちの一つとして、コマンドラインからmysqlに対してcsvの内容をインポートするmysqlimportの使い方をメモ。
注意点としては取り込むファイル名がそのままインポート先のテーブル名として暗黙的に使われるので、ファイル名とテーブル名を合わせおく必要がある。
MySQLのバージョンは5.6.22です。
CSVファイルの高速取込み
構文
$ mysqlimport -u [ユーザ] -p --fields-terminated-by=[区切り文字] --lines-terminated-by=[改行文字] --ignore-lines=[無視する行数※1] --local [データベース名] [読み込むファイルのフルパス]
※1.最初の行がヘッタ行の場合など、先頭行を無視したい場合は「--ignore-lines」オプションを使い、先頭から数えて無視したい行数を指定します。
使用例
$ mysqlimport -u root -p --fields-terminated-by="," --lines-terminated-by="\r\n" --ignore-lines=1 --local sampledb /home/user/test1.csv
Enter password: [パスワード]
そのほか気になるオプション
-i, --ignore
⇒--ignore:ユニークキーが重複した場合、何も処理せず無視する
--r, --replace
⇒--replace:ユニークキーが重複した場合、既存のデータを新しいレコードの値で上書き
-P port_num, --port=port_num
⇒接続するサーバのポートを指定
-d, --delete
⇒インポート前に、インポート先のテーブルを全件削除する
-f, --force
⇒処理中にエラーが発生しても無視して、後続の処理を実行する。
投稿日:2020-03-12
更新日:2020-03-25