我只是想知道为什么更新记录(刷新)会随着时间的推移而减慢。例如,如果我想检查多个记录并相互比较,那么在比较之后,更新一个像setCompared(True)这样的列。最初的1000个记录都很好,而且速度很快,但在那之后,每次刷新之后,它的速度似乎都会减慢。有什么原因吗,就像它的建立或什么的。在刷新()之后,是否需要清除()。
有人对此有解释吗?
发布于 2022-06-30 09:58:59
根据(理论文件),您应该这样做:
<?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。
https://stackoverflow.com/questions/72804032
复制相似问题