所以我正在研究一个将不断与SQL数据库通信的java程序。用户将输入他们自己的SQL数据库,我希望数据库和计算机本身的负载尽可能低。每个X(用户指示的时间,最有可能是5秒-5分钟)程序将检查数据库中的命令。
方法A
- 每个X连接到SQL并检查是否有任何命令
- 关闭SQL连接
或者
方法B
- 首次运行时连接到SQL
- 保持连接打开并检查每个X
的命令- 关闭前关闭连接
我想知道哪种方法会更好。
答案 0 :(得分:0)
当你有一个无法估计用户访问数据库频率的程序时(例如搜索数据库,插入新数据,删除旧数据),最好将池连接汇总,即创建一些连接。在关闭之前启动和关闭池中的所有连接。同时从池中获取用于查询数据库的连接,并将其释放到池中以供进一步使用。这种方法避免建立和关闭连接,因为它们往往非常昂贵。保持连接存活并不是什么大问题,那里有很多连接池库。
根据您的用例,您可以估计数据库访问的频率,并且由于两次调用之间的时间间隔似乎相当大,因此使用池并不是必需的。尽管如此,这是一个很好的做法。
给出的答案是指性能问题。从我的观点来看,方法B另外允许更好地分离关注点。您将整个连接内容放在一个位置,将业务逻辑放在另一个位置。无需混淆。
最后,池允许监视连接。它可以让您控制最多应打开多少个连接。这可能很重要,例如当单个任务/查询需要的时间超过两次调用之间的时间间隔时,这将导致打开越来越多的连接。
我希望这可以为您提供一些问题的答案。