0

500MB 前後の大きな SQL ファイルをインポートしようとすると問題が発生します。100,000 の拡張挿入クエリがあります。私はあらゆる場所を探しましたが、まだ何も見つかりませんでした。Bigdump は拡張挿入をサポートしていないため、役に立ちません。memorty_limit を 512M に増やしたにもかかわらず、それらのすべてが PHP で MEMORY EXHAUST を引き起こす fopen() または file() を使用しているため、私が見たすべての提案はすべて失敗します。500MB の sql ファイルを読み取り、それを調べて、拡張挿入である挿入クエリを取得できるコードを探しています。

誰でもこれで私を助けることができますか???

4

2 に答える 2

0

問題file()は、ファイル全体を大きな配列に読み込むことです。ファイルの大きさによっては、メモリ制限に簡単に達する可能性があります。

これは、通常は必要ありません。代わりに、行を 1 つずつ取得します。これはiteratorsぴったりです。

http://php.net/manual/en/class.iterator.phpを参照して、ファイルを読み取り、コマンドライン経由で実行する必要があると思います....

于 2012-09-21T10:28:10.387 に答える
0

Web サーバーから実行している PHP でこれを行うべきではありません。

  • 1 回限りの操作の場合は、phpmyadmin を使用します
  • mysql で提供されているツールを使用してこれを解決できるかどうか試してみてください。
  • プログラムを作成する必要がある場合 (ファイルを毎日実行する必要があるため)、コマンド ライン モードで PHP を実行します。
  • コマンドラインにアクセスできない場合は、挿入の一部を読み取り、その部分を処理してみてください。
于 2012-09-21T10:22:03.853 に答える