因此,我正在编写一个java程序,它将不断地与SQL数据库通信。用户将输入他们自己的SQL数据库,我希望数据库和计算机本身的负载尽可能低。每个X(用户指示的时间,很可能是5秒-5分钟)程序将检查数据库中的命令。
方法A
或
方法B
我在想哪种方法会更好。
发布于 2014-08-04 14:01:54
当您的程序无法估计用户访问数据库的频率(例如搜索数据库、插入新数据、删除旧数据)时,最好将连接池合并,即在启动时创建多个连接,并在关闭之前关闭池中的所有连接。同时,从池中提取连接以查询数据库,并将连接释放到池中以供进一步使用。这种方法避免建立和关闭连接,因为它们往往非常昂贵。保持连接活动并不是什么大事,而且那里有很多连接池库。
根据您的用例,您可以估计数据库访问的频率,而且由于两个调用之间的时间间隔似乎相当大,所以不需要使用池。尽管如此,这是一个良好的做法。
所给出的答案涉及性能问题。在我看来,方法B还允许更好地分离关注。在一个地方有整个连接,在另一个地方有业务逻辑。没必要把事情搞混。
最后,池允许监视连接。它将让您控制最多应该打开多少个连接。这可能很重要,例如,当单个任务/查询需要比两个调用之间的时间间隔更长的时间时,这将导致越来越多的连接被打开。
我希望这能给你一些回答你的问题。
https://stackoverflow.com/questions/25020624
复制相似问题