Database 持久数据库连接

Database 持久数据库连接,database,database-connection,persistent-connection,Database,Database Connection,Persistent Connection,我正在用java编写一个小程序,它将在嵌入式设备上运行。 它的目的是在云中的数据库中存储一些值(比如温度) 场景1:每个可能的周期都存储数据(连接存储…-断开连接) 场景2:每5分钟存储一次数据(连接存储等待存储等待…-断开连接) 场景3:数据每小时存储一次 保持与数据库的持续连接还是仅在需要时连接更好?为什么? 如果部署100台这样的设备(一个人永远不会有足够的温度数据),会发生什么情况?除非有特殊情况,它几乎总是只在需要时连接。有几个优点: 资源的保存时间尽可能短,从而使其可用性最大化

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

  • 场景1:每个可能的周期都存储数据(连接存储…-断开连接)
  • 场景2:每5分钟存储一次数据(连接存储等待存储等待…-断开连接)
  • 场景3:数据每小时存储一次
保持与数据库的持续连接还是仅在需要时连接更好?为什么?


如果部署100台这样的设备(一个人永远不会有足够的温度数据),会发生什么情况?

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

  • 资源的保存时间尽可能短,从而使其可用性最大化
  • 连接的生命周期范围控制在代码中的一个点上,将资源泄漏的可能性降至最低
  • 频繁写入数据,从而最大限度地减少因崩溃造成的数据丢失
  • 重试逻辑更简单,因为连接状态被本地化为代码中的单个点
一般来说:尽可能晚、尽可能短地打开连接,并尽可能快地关闭连接

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


除了@Mitch的答案之外,如果您坚持连接,然后连接中断,添加所有恢复和重试的逻辑是一个巨大的问题。谢谢您的回答!但有一件事,持续的连接和断开连接不也会占用资源吗?特别是在需要每秒(甚至更高频率)记录温度的情况下?查找特定RDBMS和运行时环境的“连接池”。