我在业余时间从事单用户桌面数据库应用程序的工作,而且我总是不确定我正在做的设计选择.现在,就目前而言,每当用户想要与数据库(这是一个本地SQLite数据库,因此通常只有一个用户一次看到它)进行交互时,应用程序就会创建一个新连接,做它需要做的任何事情,然后关闭连接.因此,在一次执行应用程序的过程中,会创建和处理大量连接.
这通常是"最佳"的方式,或者应用程序是否应该在启动时打开连接并且仅在应用程序退出时关闭它?每种方法有哪些优点/缺点?
Fru*_*ner 27
在这种情况下,我会说这很好,因为只有一个用户,数据库托管在同一台机器上(更可能在同一个内存空间,因为我认为SQLite只是作为主应用程序的DLL加载)应用程序.不必打开和关闭连接.
一个可能的例外情况可能是您需要让应用程序的多个线程同时访问数据库.然后你可以强迫他们等待并共享一个连接对象,或者你可以尝试为不同的线程创建新的连接.我从来没有在SQLite中尝试过这个.这种情况下,关闭主连接和打开/关闭多个连接可能对桌面应用程序更好.
对于Web应用程序或客户端/服务器桌面应用程序,我建议不要打开连接.
通常,连接在使用后关闭; 将其释放回可用连接池中.如果在单个客户端上发生大量事务,则利用单个连接而不是仅创建多个连接以立即关闭它们是有意义的.
它有点间接,但典型的最佳做法是在使用后关闭它,以便它再次在池中可用.
想象一下,您有1000个用户同时访问您的应用程序.这意味着1000个开放连接.最终你可能会用尽连接.因此,让每个用户打开一个连接,使用它,然后关闭它,以便其他人可以免费使用连接.
进一步澄清
想象一下,他有多个同时需要相同连接的模块?图像同时运行需要连接的控件.他要做什么?有一个全局连接对象?使用单身人士模式?告诉我,如果我错了
| 归档时间: |
|
| 查看次数: |
19137 次 |
| 最近记录: |