0

コンマ区切りの txt ファイルをテーブルにロードしているときに問題が発生しました。ファイルが巨大です。そのサイズは2 GBで、 65 列34 Lac行が含まれています。このファイルをロードするために次の設定を行いました:

  • Query-LOAD DATA LOCAL INFILE filename INTO TABLE tablename FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n' IGNORE 1 LINES;

そして、ファイルmy.iniに次の変数を追加しました

  • [mysqld] max_allowed_packet=60M
  • [myisamchk] key_buffer_size=512M myisam_max_sort_file_size=3G

私はmysqlが初めてです。このファイルをロードするのを手伝ってくれる人はいますか。上記のクエリを実行すると、次の結果が4〜5回得られました。

Query OK,0 rows affected(25.09 sec)
Records:0 Deleted:0 Skipped:0 Warnings:0
4

4 に答える 4

1

外部ウリルを使用する

mysqlimport --ignore-lines=1 --fields-optionally-enclosed-by="\"" --fields-terminated-by=, --lines-terminated-by="\r\n" --user=YOUR_USERNAME --password YOUR_DATABASE tablename.txt
于 2012-05-25T06:27:43.567 に答える
1

LOCAL キーワードを使用しないようにしてください。これで問題が解決しない場合は、テキスト ファイルの最初の行をいくつか投稿してください。これにより、パラメーターで指定されたパターンに一致しないためにすべての行が無視されているかどうかを確認できます。

更新 1: '\r\n' ターミネータを使用していることがわかります

LINES TERMINATED BY '\r\n'

'\n' のみを使用するようにこの行を変更してみましたか:

LINES TERMINATED BY '\n'

?

更新 2: LOAD DATA コマンドでテーブル列を指定してみてください。

LOAD DATA INFILE filename
INTO TABLE tablename
FIELDS TERMINATED BY ';' ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'(
`tableColumn1` , `tableColumn2`, ..., `tableColumn65`
)

ファイルとテーブルの列の数が一致していないか、ファイルの列がテーブルの列と同じ順序になっていない可能性があります。

于 2012-05-25T06:28:27.420 に答える
0

私は自分の質問に対する答えを自分で見つけました。

1.ファイルをgsliptsソフトウェアで分割し、新しく作成した各ファイルに応じて変更を加えました。

2.その後、これらのファイルをExcelで30分ほど正しくフォーマットして開き、各分割のcsvファイル(gsliptsで作成されたファイル)を作成し、loaddataコマンドを実行しました。

于 2012-05-28T07:17:22.393 に答える