Symfony 5学说冲洗速度减慢



我只是想知道为什么更新记录(刷新)会随着时间的推移而减慢。例如,如果我想检查多个记录并将它们相互比较,并且在比较后更新一个列,如setComparised(true);。前1000张记录很好,速度很快,但在那之后,每次刷新后,刷新速度似乎都会减慢。这有什么原因吗,比如它可能会堆积起来什么的。flush()之后需要清除()吗。

有人对此有解释吗?

您应该根据条令文档这样做):

<?php
$batchSize = 20;
for ($i = 1; $i <= 10000; ++$i) {
$user = new CmsUser;
$user->setStatus('user');
$user->setUsername('user' . $i);
$user->setName('Mr.Smith-' . $i);
$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();

以下代码显示了插入批量大小为20的10000个对象的示例。这意味着我们用flush()将它们插入20乘20。

最新更新