symfonyTweet元部下のFさんがFacebookで書いてたのと、自分なりのまとめということで、簡単にDoctrine2のバルクインサートについて書いておこうと思います。使用しているDBはMySQL想定です。Doctrine2を使ってバルクインサートする場合は以下のようなコードになるかと思います。}で、まあこれはこれでいいんですが、いくつかトラップがあると思います。どれもメモリが足りなくなる問題だと思いますが・・・clearをしていないまあO/Rマッパーなんで、いろいろとメモリを食うわけです。解放しないままにしておくと、メモリが足りなくなるわけです。これはentityManagerのclearメソッドを実行すればいいのです。}}clearしたらなんか他のエンティティを保存しようとしたらExceptionを吐くどういう状況だったか忘れてしまいましたが、複数のエンティティが絡むバッチ処理を実行している際にclear()をしてしまうとエラーになるという現象が発生したことがありました。}Commandとして実行した場合にメモリが足りなくなる問題ContainerAwareCommandクラスを継承した、コマンド系の処理を実行している際にメモリが足りなくなる事があります。これは開発環境でよく起きる現象かと思っています。」オプションをちゃんと指定すれば大丈夫です。--no-debugと以上が、大まかな注意点だと使っていて感じました。僕がDcotrine2を全然使いこなせていないので、、、もっといろいろノウハウを持っている方は僕に共有してください。有益な情報であれば鰻ぐらいはおごりますよ。それから、DQLのパース処理が遅いのか、バルクインサートしてもなんか遅い感じがします。1秒近く待たされてからInsert処理が実行されるぽい感じです。まあPDOが遅い上にDQLとか遅いのは仕方ないよねって感じですね。あまりにも大きすぎる処理をのぞいてある程度はバッチ処理であれば、phpのメモリを512MBぐらいすれば大体たりるかなぁーというイメージです。大体メモリー食う時って自分の実装が悪いってのが90%ぐらいなんで常に自分の実装を見直す癖はつけた方が良いです。そもそもバッチ処理にDcotrine2を使う必要ないのでは?って思ってしまう今日この頃です。