Mik*_*ail 5 symfony doctrine-orm
是否可以使用单个查询向DB插入多个实体?当我使用此处的示例时,我可以在Web调试器中看到几个查询
更新时间23.08.2012
我找到了以下相关链接.我希望有人能帮助理解批处理:
主要的事情:
有些人似乎想知道为什么Doctrine不使用多插入(插入(...)值(...),(...),(...),...
首先,只有mysql和更新的postgresql版本支持此语法.其次,当使用AUTO_INCREMENT或SERIAL并且ORM需要用于对象的身份管理的标识符时,没有简单的方法来获得这样的多插入中的所有生成的标识符.最后,插入性能很少是ORM的瓶颈.正常插入对于大多数情况来说足够快,如果你真的想做快速批量插入,那么多插入并不是最好的方法,即Postgres COPY或Mysql LOAD DATA INFILE要快几个数量级.
这就是为什么不值得努力实现在ORM中对mysql和postgresql执行多插入的抽象的原因.我希望能够清除一些问号.
我认为会有多个插入语句,但每个“刷新”调用只有一个对数据库的查询。
正如这里提到的 http://doctrine-orm.readthedocs.org/en/2.0.x/reference/working-with-objects.html
每个“persist”都会向当前UnitOfWork添加一个操作,然后是对EntityManager#flush()的调用,它实际上会写入数据库(将UnitOfWork的所有操作封装在单个事务中)。
但我没有检查我上面描述的行为是否是实际行为。
最好的问候,克里斯托夫
| 归档时间: |
|
| 查看次数: |
4714 次 |
| 最近记录: |