Mysql
 sql >> Database >  >> RDS >> Mysql

Dottrina2 - Inserimento multiplo in un colpo solo

Secondo questa risposta , Doctrine2 non ti consente di combinare più istruzioni INSERT in una:

Puoi leggere ulteriori informazioni sull'elaborazione batch di Doctrine2 qui:http://www. .doctrine-project.org/blog/doctrine2-batch-processing.html

Puoi passare a DBAL o ricorrere all'elaborazione dei tuoi dati in piccoli lotti svuotando il tuo gestore di entità dopo un determinato numero di inserimenti:

$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();