繁体   English   中英

与SQL数据库持续通信的最有效方法

[英]Most efficient way to constantly communicate with a SQL database

因此,我正在研究一个Java程序,该程序将不断与SQL数据库进行通信。 用户将输入他们自己的SQL数据库,我希望数据库和计算机本身的负载尽可能低。 程序每隔X个(由用户指示的时间,很可能是5秒-5分钟)将检查数据库中的命令。

方法一

  • 每个X连接到SQL并检查是否有任何命令
  • 关闭SQL连接

要么

方法B

  • 首次运行时连接到SQL
  • 保持连接打开并每X检查一次命令
  • 关闭前先关闭连接

我想知道哪种方法更好。

当您有一个程序无法估计用户访问数据库的频率(例如,搜索数据库,插入新数据,删除旧数据)时,最好将连接池合并,即在启动和关闭时创建多个连接关闭之前,池中的所有连接。 同时,从池中获取连接以查询数据库,并将连接释放到池中以供进一步使用。 这种方法避免建立和关闭连接,因为它们往往非常昂贵。 使连接保持活动状态并不重要,并且那里有很多连接池库。

给定您的用例,您可以估计数据库访问的频率,并且由于两次调用之间的时间间隔似乎很大,因此不必使用池。 尽管如此,这是一个好习惯。

给出的答案涉及性能问题。 从我的角度来看,方法B还可以更好地分离关注点。 您将整个连接内容放在一个地方,将业务逻辑放在另一个地方。 无需混淆。

最后,该池允许监视连接。 它可以让您控制最大应打开多少个连接。 这可能很重要,例如,当单个任务/查询需要的时间比两次调用之间的时间间隔长时,这将导致打开越来越多的连接。

我希望这能给您一些答案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM