繁体   English   中英

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

[英]Should I open() and close() my SQL database constantly or leave it open?

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

在我看过的教程中,他们建议您在更改数据库后关闭数据库(这在资源方面是“昂贵的”)。

在我的应用程序期间保持打开状态是否更好,因为它会相当频繁地更新,还是应该在每次更改后立即运行 close() 方法?

我想我担心的是,不断地打开和关闭它会比一直打开它会消耗更多的资源。

我曾经试图打开一个连接——我用它来填充中继器或其他东西——现在不记得了。

在程序的后期,我还需要使用连接——我想我有它,所以当用户单击转发器中的父项时,会弹出一个详细 div,其中包含该项的更多信息。 这产生了一个错误——类似于“无法在打开的连接上打开()”的结果。

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

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

另一个想法是您的数据库管理员可能能够强制关闭所有打开的连接,或者数据库可能由于其他原因而关闭。 如果您不是 dba,您可能会考虑依赖于您无法长期控制的事物(例如保持连接打开)的风险/收益。

对于今天的处理器,甚至电话处理器来说,三分钟是永恒的。 我会关闭它并每次打开它。 这比可能将手柄挂在“以太”中要好。

假设您在单个线程中背靠背地执行多个数据库操作。 我会保持数据库开放以执行这些操作。 但是在完成大量工作后关闭数据库。

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

如果你重新查询数据库很多在这种情况下你可以保持数据库打开。

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

看看下面的 url

何时关闭 android 上的数据库连接? 每次操作完成或应用退出后

谢谢迪帕克

如果你问我到目前为止我所读到的关于 android 的所有内容,通常最好在你进行修改后立即关闭它。

当你可以的时候,我发现最好的办法是制作和注册一个内容提供者。 它有它的价格,但我相信你得到的比你付出的要多得多。 您可以使用内容提供程序完成几乎所有操作,android 门户上的记事本示例非常适合学习如何实现它。 它负责数据库同步和打开/关闭它。 所以也许调查一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM