6

XML ファイルを解析し、次のような大きな SQL ファイルを作成する php スクリプトがあります。

INSERT IGNORE INTO table(field1,field2,field3...)
VALUES ("value1","value2",int1...),
("value1","value2",int1)...etc

このファイルは合計で 20 GB を超えます (2.5 GB のファイルでテストしましたが、これも失敗します)。

次のようなコマンドを試しました:

mysql -u root -p テーブル名 < /var/www/bigfile.sql

これは、たとえば約 50MB の小さなファイルで機能します。ただし、より大きなファイルでは機能しません。

私は試した:

mysql> source /var/www/bigfile.sql

mysqlimport も試しましたが、ファイルが適切に処理されません。

というエラーが表示され続けます

ERROR 2006 (HY000): MySQL server has gone away

約起こります。実行開始から30秒。

allowed_max_packet を 4GB に設定しましたが、SHOW VARIABLES で確認すると 1GB しか表示されません。

さらに10時間を無駄にせずにこれを行う方法はありますか?

4

1 に答える 1

2

ファイルを複数の INSERT クエリに分割してみてください。

于 2012-02-18T02:02:44.217 に答える