8

非常に大きな .sql ファイルをデータベースにインポートしようとしています。ファイルは現在20GBの大きさです。コンソール mysql database < backup.sql で試しましたが、これには 24 時間以上かかり、mysql サーバーはもう反応しません。

このような大きなファイルをインポートするにはどうすればよいですか? 分割するのがいいと思いますが、どうすれば正しく分割できますか?複数の挿入ステートメントを持つ 1 つのテーブルのみです。

4

4 に答える 4

1

MySQL には、API 駆動のテーブル挿入が言語に組み込まれています。下記参照。これを使用してください:http://dev.mysql.com/doc/refman/5.1/en/load-data.html

ファイルを挿入ステートメントから何らかの形式のcsvなどに再フォーマットする必要がありますが、これはRDBMSと通信する方法であるため、個々のステートメントよりもはるかに高速になるはずです「大量のデータをアップロードしようとしています、再イデックスと簿記のオーバーヘッドを最後まで節約し、十分なスペースがあることを確認し、いっぱいになるたびにではなく一度そのスペースを取得し、適切なロックなどを使用するようにしてください。」

于 2013-03-01T19:11:26.680 に答える
0

SQL ファイルを分割して、データベースにインポートできます。

sqldump ファイルを分割する最も簡単な方法は、sqldumpsplitterソフトウェアのダウンロードリンクを使用することです。

または、この端末コマンドを使用して分割します

split -l 5000 ./path/to/mysqldump.sql ./mysqldump/dbpart-

ここで、5000 は sql コマンドの行数です。分割することをお勧めします。次の 2 つの引数は、それぞれソースと宛先のパスです。個々の分割ファイルには、末尾にアルファベットが追加された名前が割り当てられます。

この問題を抱えている他の人に役立つことを願っています。

于 2015-03-09T17:39:26.830 に答える
0

テーブルをロックして、このテーブル データ ファイル (.frm、.MYI、.MYD) のコピーを作成するだけです。
すぐに、任意のデータベースにインポートできる準備が整ったデータ ファイルを取得します。

この方法は、myisam では非常にうまく機能します。innodbについてはわかりません。

于 2013-03-01T19:18:23.527 に答える