我有一个RMI应用程序, 基本上来自客户端的每个请求,在数据库中创建一个新的连接(在服务器端),在SQL查询中将数据转换为可发送回客户端的可序列化类。
应用程序的用户群增长了,请求需要很长时间才能完成。以前程序员提出的解决方案是从服务器到数据库创建一个固定大小的连接池,每个客户端的请求使用最旧的(最近最少使用的)来运行SQL查询。 我的问题是:解决这个问题的正确方法是什么?
答案 0 :(得分:2)
我想说,汇集数据库连接已经是一个重要的步骤,因为建立连接是很昂贵的。但是,我不会实现自己的池,而是使用现有且经过验证的池数据源实现,例如DBCP或C3P0。它们有许多有用的功能,如vaying大小,自动连接检查等...
如果查询本身占用太长时间,那么优化将比这更复杂。各种方法都是可能的,取决于具体情况,例如:
可能的方法(我现在可以想到)减少请求时间:
我希望这会有所帮助。我们真的需要有关用例的更多细节,以便为您提供更好的答案。