symfony 3中插入多行速度较慢

symfony 3中插入多行速度较慢,symfony,Symfony,我正在symfony中插入多行。我的代码插入得很慢。有人有什么想法对我没有帮助吗!谢谢大家! $manager = $this->getContainer()->get('doctrine')->getEntityManager(); // data : object foreach ($data as $value) {

我正在symfony中插入多行。我的代码插入得很慢。有人有什么想法对我没有帮助吗!谢谢大家!

                    $manager = $this->getContainer()->get('doctrine')->getEntityManager();
                    // data : object
                    foreach ($data as $value) {
                        $entitty = $stkModel->getRepository()->findOneBy(['phone' => $value->getPhone()]);
                        if ($entity) {
                            $stk = $stkModel->getEntity();
                            $stk->setName('mina');
                            $stk->setStatus(1);
                            $manager->persist($stk);
                            $manager->flush();
                        }
                        if ($stk) {
                            $entitty = $titleModel->getRepository()->findOneBy(['stkId' => $stk->getId()]);
                            $title = $titleModel->getEntity();
                            $title->setName('dev');
                            $title->setOrder(2);
                            $manager->persist($title);
                            $manager->flush();
                        }
                        // Here I take $title->getId();
                    }

首先,只需要在使用
new
创建的实体上调用
persist
。但这不会给您带来速度性能

每次使用应用程序时,
flush
都会减慢应用程序的速度,因为这里的查询将被发送到数据库。要加快应用程序的速度,必须尽量减少使用
flush
。在您的情况下,只需在更新您的实体后执行一次
flush

$manager=$this->getContainer()->get('doctrine')->getEntityManager();
//数据:对象
foreach(数据为$value){
$entitty=$stkModel->getRepository()->findOneBy(['phone'=>$value->getPhone()]);
如果($实体){
$stk=$stkModel->getEntity();
$stk->setName('mina');
$stk->setStatus(1);

//$manager->persist($stk);谢谢你的回答!我给flush打了两次电话,因为第二个if会得到第一个if的保存结果,第二个if保存时我会一直得到我在队列中拍摄的$title的id。你能给我一些建议吗?对不起,我的英语不太好,在这里帮你不容易,因为这真的取决于你的代码。但是你知道吗我要减少你的同花顺电话,以提高你的速度。