【发布时间】:2014-11-09 06:58:39
【问题描述】:
Doctrine 将原生的、驱动程序特定的数据库连接资源句柄封装在其 Connection 类中。我说的是从例如mysqli_connect() 返回的资源。我看不到任何访问原始连接资源的方法 - 我找不到任何 getter 方法。这种强大的封装可能应该暗示我不应该尝试访问它并使用它,但当然,这正是我想要做的。
如果我要从同一个连接发出只读选择查询会导致任何问题吗?我不确定教义的工作流程是如何运作的。数据库连接是有状态的,我有点害怕当学说有一些多步事务部分正在进行时我可能会跳进去发出一个 sql 查询,这显然会导致问题。但是由于 php 的单线程性质,我认为在实践中它可能是不可能的,这取决于教义是如何工作的。
旁白:我想这样做的原因是为了性能。我有一些其他代码不是用教义编写的,它需要原始数据库连接,因为它使用本机 db 扩展函数。我可以只打开另一个数据库连接,但打开第二个连接在我的场景中具有显着的性能影响......这使得尝试重用学说连接非常有吸引力。
【问题讨论】:
-
学说旨在抽象底层数据库连接。你为什么要使用它?只需创建一个原始连接
-
@Aris 你读过帖子的最后一部分吗?我解释了原因。
标签: php mysql doctrine-orm