我应该不断打开()并关闭()我的SQL数据库还是保持打开状态?

时间:2011-06-14 05:43:34

标签: android sql database database-connection

我正在创建一个使用SQL数据库存储数据的应用程序。应用程序的设计方式将根据应用程序运行时的用户操作,每隔3分钟左右更新一次新数据。

在我看到的教程中,他们建议您在更改后关闭数据库(就资源而言,这是一个“昂贵的”)。

在应用程序期间保持打开是否更好,因为它经常更新,或者我应该在每次更改后立即运行close()方法吗?

我想我担心的是,打开它并不断关闭它会吸引更多资源,而不是让它在整个时间内打开。

5 个答案:

答案 0 :(得分:5)

我尝试将连接打开一次 - 我用它来填充转发器或其他东西 - 现在不记得了。

在程序的后期,我还有另一个需要使用连接 - 我想我已经拥有它,以便当用户点击转发器中的父项时,会弹出一个详细div,其中包含该项的更多信息。这产生了一个错误 - 在开放连接上无法打开()的效果。

我认为错误可能是另一种方式可以避免(比如查看我试图打开的连接是否已经打开),但是当我想到它时,我意识到我必须将其作为标准做法整个我的应用程序,这似乎太多的工作,所以我只是做了一个标准的做法,每次使用后总是关闭我的连接。

连接保留在一个连接池中 - 我不是高手 - 但如果对性能感到好奇,我想我会记住这一点,就多次打开连接的成本而言 - - 无论你的情况如何,无论如何都需要。

另一个想法是,您的数据库管理员可以强制关闭所有打开的连接,或者数据库可能因某些其他原因而关闭。如果你不是dba,你可能会考虑风险/利益取决于你没有长期控制的东西,比如保持连接开放。

答案 1 :(得分:3)

今天的处理器,甚至是手机处理器,都是三分钟。我会关闭它并且每次打开它。它可能比把手柄留在“以太”中更好。

答案 2 :(得分:3)

假设你有几个数据库操作要在一个线程中背靠背做。我会让DB保持开放以执行这些操作。然而,在完成一大堆工作后关闭数据库。

答案 3 :(得分:3)

我认为这个问题的答案还取决于访问数据库的应用程序类型。

如果您重新查询数据库 在这种情况下,您可以保持数据库处于打开状态。

是否有其他应用程序访问同一个数据库? 如果存在并发或阻塞问题的风险,那么在完成对/从中读取/写入数据库后关闭数据库可能是明智的。

查看以下网址

When to close db connection on android? Every time after your operation finished or after your app exit

谢谢Deepak

答案 4 :(得分:1)

如果你通过我迄今为止所读到的关于android的所有内容问我,一般来说最好在你做出修改后立即关闭它。

我发现最好的办法就是制作和注册内容提供商。 它有它的价格,但我相信你获得的收益远远超过你的收入。 您可以使用内容提供商完成所有工作,Android门户网站上的记事本示例非常适合学习如何实现它。它负责db同步和打开/关闭它。所以也许可以调查一下。

相关问题