首页 > 解决方案 > 在 Doctrine 中出现性能问题是否正常?

问题描述

在处理超过 2000 条记录的插入或更新时,在原则上出现性能问题是否正常?我应该求助于 PDO 吗?

标签: phpdoctrine-ormdoctrine

解决方案


是的。当你使用批量选择时,Doctrine 是有效的,但如果你使用批量更新、插入或删除,则非常糟糕。不要对那些使用纯 sql 的操作使用原则。例如,当您批量插入时,您会创建 2000 个对象(服务器内存不足),然后如果您在循环中刷新,则将其逐个插入。当然,您可以使用 200 个对象块和刷新来持久化它们,但内存使用量仍然比通过普通 sql 插入要大得多。更糟糕的是,如果您使用原则选择 2000 条记录,那么这些记录不仅会成为实体对象,而且还会成为具有许多其他对象映射到它们的持久集合,并且当您尝试持久保存它们时,服务器将使用更多内存。


推荐阅读