持久数据库连接

时间:2014-01-05 23:48:38

标签: database database-connection persistent-connection

我正在java中创建一个将在嵌入式设备上运行的小程序。 它的目的是在一个位于云中的数据库中存储一些值(比如温度)。

  • 场景1:每个可能的周期都存储数据(connect-store-store-store ... -disconnect)
  • 场景2:数据每5分钟存储一次(connect-store-wait-store-wait ... -disconnect)
  • 场景3:每小时存储一次数据

维持与数据库的持续连接或仅在需要时连接是否更好?为什么呢?

如果部署了100台此类设备(一台设备永远无法获得足够的温度数据),会发生什么?

1 个答案:

答案 0 :(得分:1)

除非有特殊情况,否则几乎总是仅在需要时连接。有几个优点:

  • 资源尽可能保持最短时间,从而最大限度地提高其可用性。
  • 连接的生命周期范围在代码中的单个点控制,从而最大限度地减少资源泄漏的可能性。
  • 经常写入数据,从而最大限度地减少因崩溃而造成的数据丢失。
  • 重试逻辑更简单,因为连接状态已本地化为代码中的单个点

一般:尽可能短暂地打开连接,并尽快关闭

(许多数据库系统实现了连接池,这使得这个过程非常有效)

Why always close Database connection?