【问题标题】:persistent database connection持久的数据库连接
【发布时间】:2014-01-05 23:48:38
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: database database-connection persistent-connection


    【解决方案1】:

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

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

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

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

    Why always close Database connection?

    【讨论】:

    • 除了@Mitch 的回答之外,如果您确实保持了连接,然后连接中断,那么添加所有恢复和重试的逻辑是一个巨大的 PIA。
    • 感谢您的回答!不过有一件事,不断的连接和断开连接不也会占用资源吗?特别是在需要以每秒(甚至更高频率)记录温度的情况下?
    • 为您的特定 RDBMS 和运行时环境查找“连接池”。
    猜你喜欢
    • 2010-11-10
    • 1970-01-01
    • 2010-09-21
    • 2015-06-09
    • 1970-01-01
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    相关资源
    最近更新 更多