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

Doctrine2-ワンショットで複数の挿入

    この回答によると 、Doctrine2では、複数のINSERTステートメントを1つに結合することはできません:

    Doctrine2バッチ処理の詳細については、次を参照してください: http:// www .doctrine-project.org / blog / doctrine2-batch-processing.html

    DBALに切り替えるか、設定された量の挿入後にエンティティマネージャーをフラッシュすることで、データを小さなバッチで処理することに頼ることができます。

    $batchSize = 20;
    
    foreach ($items as $i => $item) {
         $product = new Product($item['datas']);
    
         $em->persist($product);
    
         // flush everything to the database every 20 inserts
         if (($i % $batchSize) == 0) {
             $em->flush();
             $em->clear();
        }
    }
    
    // flush the remaining objects
    $em->flush();
    $em->clear();
    


    1. トークスライド:PostgreSQL11でのパーティション分割の改善

    2. SEC_TO_TIME()の例– MySQL

    3. SQL QUERY 1つの行を複数検索して、同じテーブルの別の行のデータを検索します

    4. Django ConnectionAbortedError:[WinError10053]確立された接続がホストマシンのソフトウェアによって中止されました