sql >> データベース >  >> RDS >> Mysql

Symfony:Doctrineデータフィクスチャ:大きなcsvファイルを処理する方法は?

    このような大規模なバッチインポートを作成するときに従うべき2つのルール:

    • SQLロギングを無効にする:($manager->getConnection()->getConfiguration()->setSQLLogger(null); )大量の記憶喪失を避けるため。

    • 最後に1回だけではなく、頻繁にフラッシュしてクリアします。 if ($i % 25 == 0) { $manager->flush(); $manager->clear() } ループ内で、25個のINSERTごとにフラッシュします。

    編集: 最後に忘れてしまったのは、エンティティが不要になったときに、エンティティを変数内に保持しないことです。ここで、ループでは、処理中の現在のエンティティのみが必要なので、前のエンティティを$coordinatesfrcityに保存しないでください。 配列。これを続けると、メモリオーバーフローが発生する可能性があります。



    1. クエリコマンドの後にMySQLデータベースを閉じる必要があるのはなぜですか?

    2. MySQL時間を変換する方法

    3. SQL 2005でUTCとローカル(つまりPST)時間の間で日付を効果的に変換する

    4. 保存されたmd5文字列をMySQLで10進値に変換します