我应该不断打开和关闭我的SQL数据库还是让它保持打开状态?

问题描述

| 我正在创建一个使用sql数据库存储数据的应用程序。应用程序的设计方式将每隔3分钟左右更新一次,具体取决于应用程序运行时用户的操作,并使用新数据。 在我看过的教程中,他们建议您在更改数据库关闭数据库(就资源而言,这是“昂贵的”)。 最好在应用程序运行期间始终将其保持打开状态,因为它会经常更新,还是应该在每次更改后立即运行close()方法? 我想我担心的是,不断打开和关闭它会比在整个时间内保持打开状态消耗更多的资源。     

解决方法

        我曾经尝试将连接保持打开状态-我用它塞了一个中继器之类的东西-现在不记得了。 在程序的稍后部分,我还需要使用该连接-我想我已经有了它,以便当用户单击转发器中的父项时,将弹出一个细节div,其中包含该项的更多信息。这产生了一个错误-导致“无法在打开的连接上打开()”。 我认为该错误可能是可以避免的另一种方式(例如检查要尝试打开的连接是否已经打开),但是当我考虑到这一点时,我意识到我必须在整个过程中将其作为一种标准做法应用程序,这似乎太多了,因此我将每次使用后始终关闭连接作为一种标准做法。 连接停留在连接池中-我对此并不在意-但如果对性能感到好奇,那么我想牢记这一点,就多次打开连接的成本而言-无论您的情况是否需要。 另一个想法是,您的数据库管理员可以强制关闭所有打开的连接,或者数据库可能由于其他原因而关闭。如果您不是dba,则您可能会想到冒着一定的风险/利益,这取决于您无法长期控制的事物(例如保持连接打开)。     ,        在当今的处理器(甚至电话处理器)上,三分钟是永恒的。我会关闭它,每次打开它。这比将句柄挂在“ ether”中更好。     ,        假设您在一个线程中要执行多个DB操作。我会保持数据库开放以执行这些操作。但是,请在完成大量工作后关闭数据库。     ,        我认为该问题的答案还取决于访问数据库的应用程序类型。 如果您重新查询数据库很多 在这种情况下,您可以保持数据库打开。 是否有其他应用程序访问同一数据库? 如果存在并发或阻塞问题的风险,则在完成对数据库的读/写操作之后,关闭数据库可能是明智的。 看下面的URL 什么时候在Android上关闭数据库连接?每次操作完成后或退出应用程序后 谢谢Deepak     ,        如果您以我到目前为止所阅读的有关android的所有内容问我,通常最好在进行修改后将其关闭。 我发现,在可能的情况下,最好的做法是实际制作和注册内容提供商。 它有价格,但我相信您获得的收益比您支付的要多得多。 您可以使用内容提供程序执行几乎所有操作,而android门户上的记事本示例非常适合学习如何实现它。它负责数据库同步和打开/关闭它。所以也许调查一下。