アプリケーションにDoctrineとMongoDBを使用していますが、CSVファイルからコレクションにデータをインポートする必要があるタスクが1つあります。約5つの異なるCSVファイルがあり、ファイルごとに少なくとも450.000エントリがあり、1年に1〜3回重要です。
現在、ファイルのすべての行を繰り返し処理し、オブジェクトを作成し、persist()
2.500アイテムごとに呼び出してフラッシュします。
各アイテムはそれほど大きくはなく、ID、10〜20文字の文字列、5〜10文字の文字列、およびブール値があります。
私の最初の質問は、5.000アイテムごとにフラッシュすると、挿入が大幅に遅くなることです。私のテスト環境では、5.000アイテムのフラッシュに約102秒かかり、2.500アイテムのフラッシュには約10秒かかりました。
しばらくするとフラッシングが遅くなります。前述のように、最初は2.500アイテムのフラッシュに約10秒かかりましたが、100.000アイテムの後、2.500アイテムのフラッシュには約1分かかります。
物事をスピードアップするために私ができる最適化はありますか?