フォーラムを myBB から IPBoard に変換しています (変換は PHP スクリプトを使用して行われます) が、変換が必要な投稿が 400 万件以上あり、現在の速度で約 10 時間かかります。私は基本的に無制限の RAM と CPU を持っています。知りたいのは、このプロセスを高速化するにはどうすればよいかということです。この 1 つのプロセスに大量のメモリを割り当てる方法はありますか? 助けてくれてありがとう!
3 に答える
スクリプトをこれ以上高速に実行することはできません。ただし、メモリを増やすことで、一度により多くの投稿を実行できる場合があります。ファイルを変更memory_limitして、php.ini使用できるメモリ量を変更します。
一度に 1 つのフォーラムを実行するようにスクリプトに指示できる場合があります。その後、スクリプトの複数のコピーを一度に実行できます。これは、データベース テーブルと対話する方法と、スクリプトがこれを許可するように作成されているかどうかによって制限されます。ターゲット テーブルをロックしたり、ソース テーブルで非常に長い読み取りを実行したりするなど、ばかげたことを行う可能性があります。いずれにせよ、すべての速度を落とさずに一度に 3 つまたは 4 つ以上実行することはまずありません。
スクリプトを改善することは可能かもしれませんが、両方のフォーラムのデータベース形式の内部を学習するには数日かかるでしょう。フォーラムで IPBoard について質問しましたか? あなたがやろうとしていることを経験した人がいるかもしれません。
変換がどのように行われるかはわかりませんが、SQL ファイルをインポートする場合は、複数のファイルに分割して同時にインポートできます。それが役立つことを願っています:)
ファイルが既に変換されていると言っている場合は、MySQL コンソールにアクセスできることを前提として、インポートのためにMySQL Load Data In FIleを調べる必要があります。これにより、source コマンドを介して SQL ステートメントを実行するよりもかなり高速にデータがロードされます。
ファイルにそれらがなく、その場で実行している場合は、変換スクリプトでデータをファイルに書き込み(実行できるように時間制限を0に設定)、そのロードを使用することをお勧めしますデータを挿入/更新する data コマンド。