database - 始终保持数据库连接打开可以吗?

标签 database

我在业余时间从事单用户桌面数据库应用程序之类的工作,但我总是不确定自己所做的设计选择。现在,就目前而言,每当用户想要与数据库交互(这是一个本地 SQLite 数据库,所以通常只有一个用户一次看到它),应用程序创建一个新连接,做任何它需要做的事情,然后关闭连接。因此,在应用程序的一次执行过程中,会创建和处理大量连接。

这通常是解决此问题的“最佳”方法,还是应用程序应该在启动时打开连接并仅在应用程序退出时关闭它?每种方法的优点/缺点是什么?

最佳答案

我会说在这种情况下没问题,因为永远只有一个用户并且数据库托管在同一台机器上(更有可能在同一内存空间中,因为我认为 SQLite 只是作为 DLL 加载,主应用程序)作为应用程序。无需不断打开和关闭连接。

一个可能的异常(exception)是,如果您需要让应用程序的多个线程同时访问数据库。然后您可以强制它们等待并共享一个连接对象,或者您可以尝试为不同的线程创建新的连接。我从来没有真正在 SQLite 中尝试过这个。在这种情况下,关闭主连接并打开/关闭多个连接可能更适合桌面应用。

对于 Web 应用程序或客户端/服务器桌面应用程序,我建议不要让连接保持打开状态。

关于database - 始终保持数据库连接打开可以吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5474646/

相关文章:

sql - CASCADE DELETE 两个外键约束

php - 用 php 数据库中的数据填充组合框

Android 单例类和数据库,访问和更新最常用的对象

database - 模式设计 : many to many plus additional one to many

android - 在android中的两个设备之间发送数据

sql - 在 SQL Server 2008 中查找有错误的存储过程?

php - phpMyadmin 中的最大执行时间

database - 您对使用 UUID 作为数据库行标识符有何看法,尤其是在 Web 应用程序中?

php - 使用Javascript显示数据库中存在的内容

sql,数据库查询