1

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

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

保持与数据库的持续连接还是仅在需要时才连接更好?为什么?

如果部署 100 个这样的设备会发生什么(一个永远无法拥有足够的温度数据)?

4

1 回答 1

1

除非有特殊情况,它几乎总是只在需要时才连接。有几个优点:

  • 资源的保留时间尽可能短,从而最大限度地提高了它们的可用性。
  • 连接的生命周期范围在代码中的单个点进行控制,从而最大限度地减少资源泄漏的机会。
  • 数据被频繁写入,从而最大限度地减少由于崩溃而导致的数据丢失。
  • 重试逻辑更简单,因为连接状态被本地化到代码中的单个点

一般来说:尽可能晚、尽可能短地打开连接,并尽可能快地关闭

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

为什么总是关闭数据库连接?

于 2014-01-05T23:52:09.150 回答