2

目前正在尝试优化一些代码,并注意到在每个事务之前都进行了连接,并且在事务结束时调用了断开连接。

在我之前的经验中,我确实注意到调用 connect 很慢。重复这样做可能会非常昂贵......或者是吗?

4

1 回答 1

3

是的,如果您实际上为每个事务创建和拆除物理连接,除非您有非常长时间运行的事务,否则成本可能会很高。如果您的事务是一百万行的批量加载,则打开和关闭连接的成本可能相当小。另一方面,如果您的事务由插入到表中的单行组成,那么您的大部分时间将花在打开和关闭连接上。

然而,大多数时候,你有一个三层应用程序,其中中间层维护一个连接池,当中间层代码打开和关闭一个连接时,它们实际上是在逻辑连接而不是物理连接上操作. 打开连接从池中取出一个连接,业务层执行事务,然后关闭连接只是将连接返回到池中。从数据库的角度来看,没有打开或关闭任何物理连接。如果您实际上正在处理来自池的连接,则在每个事务上打开和关闭连接是完全正常的,并且假设您的连接池大小合理,则不应产生太多开销。

于 2012-04-11T20:09:09.310 回答