我需要从csv文件导入大量数据(大约1m记录)。 为了避免内存泄露我想批量插入从理论文档:Doctrine clear()和多对一的关系
$batchSize = 20;
for ($i = 1; $i <= 10000; ++$i) {
//code
$em->persist($user);
if (($i % $batchSize) === 0) {
$em->flush();
$em->clear(); // Detaches all objects from Doctrine!
}
}
$em->flush(); //Persist objects that did not make up an entire batch
$em->clear();
问题是我的插入包含“多对一”的关系,每次我用明确的()对象重复条目从这种关系。
有没有可能分离实体并避免重复?
附注:总是建议在进行大批量操作时不要使用Doctrine。您应该使用PDO执行此类任务。 – Joshua