2015-02-24 137 views
0

哪一个更好?使用HTTP Servlets中的连接池关闭连接的位置

a)在doXXX()方法开始时从连接池中获取连接,并在最后关闭。

在整个doXXX()方法中使用此连接。这样它将只从连接池中获取连接一次,但连接将在执行doXXX()所需的全部时间内打开。

b)从连接池为每个数据库操作和关闭获取连接。

它将从连接池中为每个数据库操作获取连接,但会立即关闭。

+1

没有“JDBC servlet”这样的东西;这些是完全独立的实体。如果您已从连接池获得连接,请让池处理它。 – fge 2015-02-24 20:39:38

+0

它是HTTP Servlets ..是连接池已经在那里.. – Awesome 2015-02-24 20:44:11

+0

b的缺点是什么?它非常流行,Tomcat带有一个开箱即用的JDBC连接池。 – 2015-02-24 20:46:40

回答

1

这取决于。从池中获得连接,最坏的情况可能导致昂贵的创建新连接,速度可能很慢。在数据库调用之间,它要做多少时间?一般来说,每次操作后释放会减慢特定进程的速度,但会加速其他进程的速度,反之亦然。你只需要在大负荷下担心这一点。

+0

让我们假设所有时间都是100-200个并发请求。 .. doXXX()可能需要几毫秒来处理每个Web请求..对于每个Web请求,4-5数据库请求已完成.. – Awesome 2015-02-24 20:48:17

+0

这可能无关紧要,但我猜测它是选择B IMO的做法稍好一些。例如,如果你的负载增加了一倍,它就更具可扩展性。 – Necreaux 2015-02-24 20:52:52

+0

是的,我倾向于同样的选择..谢谢你的确认.. – Awesome 2015-02-24 20:55:16