1

我正在为 SMS Gateway 开发软件: - 执行许多选择、插入、更新和删除语句,例如每天对数据库的点击量超过一百万。- 我在管理数据库连接等资源时遇到了一些困难,所以我不知道在哪里关闭连接以尽量减少创建的连接数。- 我使用驱动程序管理器。- 当我保持连接未关闭时,我在 tomcat 中出现内存泄漏。- 在控制台应用程序中有使用 DAO 的线程并且有静态连接,所以我不关闭它。

1)查询完成后不要关闭数据库连接并保持打开状态是个好主意吗?

2)我有 servlet 运行以在 http 连接上接收 SMS 并将它们插入 DB,并且我希望这个 servlet 上有数千个 http 连接(可能每分钟),我应该为 servlet 的每个请求关闭并创建 DB 连接吗?

3)在这种情况下使用数据库连接的最佳做法是什么?

4

1 回答 1

4

查询完成后不要关闭数据库连接并保持打开状态是个好主意吗?

使用连接池是个好主意,在需要时从它获取连接,然后关闭它以尽快将其释放回池中。

我有使用静态连接的线程,所以如果我关闭连接,其他线程是否可能出现异常?

确实。这是最坏的做法。不要这样做。看上面。

我有 servlet 运行以在 http 连接上接收 SMS 并将它们插入 DB,我希望这个 servlet 上有数千个 http 连接(可能每分钟),我应该关闭并为 servlet 的每个请求创建 DB 连接吗?

是的,但通过连接池,见上文。

在这种情况下使用 DB Connections 的最佳做法是什么?

看上面。

至于你标题中的问题,完全取决于数据库配置。

于 2013-10-09T01:17:47.073 回答