我正在为SMS Gateway开发软件: - 许多选择,插入,更新和删除语句,如每天超过一百万次点击数据库。 - 我在管理数据库连接等资源时遇到一些困难,所以我不知道在哪里关闭连接以最小化创建的连接数。 - 我使用Driver Manager。 - 当我保持连接未闭合时,我在tomcat中出现内存泄漏。 - 在控制台应用程序中,有使用DAO的线程和静态连接,所以我不关闭它。
1)最好不要在查询完成后关闭数据库连接,并将其保持打开状态?
2)我运行servlet以在http连接上接收SMS并将它们插入到DB中,我希望这个servlet上有数千个http连接(可能每分钟),我应该为每个servlet请求关闭并创建数据库连接?
3)在这种情况下使用数据库连接的最佳做法是什么?
答案 0 :(得分:4)
最好不要在查询完成后关闭数据库连接,并将其保持打开状态?
最好使用连接池,在需要时从中获取连接,然后关闭它以尽快将其释放回池中。
我有使用静态连接的线程,所以如果我关闭连接,其他线程有异常吗?
当然。这是最糟糕的做法。不要这样做。见上文。
我运行servlet以在http连接上接收SMS并将它们插入到DB中,我希望这个servlet上有数千个http连接(可能每分钟),我是否应该为每个servlet请求关闭并创建数据库连接? / p>
是的,但是通过连接池,请参见上文。
在这种情况下使用数据库连接的最佳做法是什么?
见上文。
至于标题中的问题,它完全取决于数据库配置。