【发布时间】:2010-11-29 09:23:02
【问题描述】:
我正在使用 sqlite 访问我的数据库,并且始终保持连接打开。
我收到了卸载存储数据库的磁盘的新请求。问题是,我必须关闭连接吗?还是关闭数据库就够了?
【问题讨论】:
标签: sqlite filesystems database-connection
我正在使用 sqlite 访问我的数据库,并且始终保持连接打开。
我收到了卸载存储数据库的磁盘的新请求。问题是,我必须关闭连接吗?还是关闭数据库就够了?
【问题讨论】:
标签: sqlite filesystems database-connection
这取决于您使用的框架。对于 SQLite 本身来说,关闭数据库就足够了。只需确保您已完成所有交易,然后再执行此操作即可。
我想你正在使用一些框架,因为 SQLite 本身没有 disconnect 功能或方法。它只有一个 close 方法,如果您在框架中 close 或 disconnect 可能会自动调用该方法。
当然,SQLite 是一个基于文件的数据库。所以无论如何都没有“连接”这样的东西。
【讨论】:
SQLite 的连接对应于一个打开的文件(或者更多,如果有一个事务日志打开;当我在这里尝试使用lsof 进行探测时,我打开了另外两个 FD,一个用于日志,一个用于包含目录),因此当与数据库的任何连接打开时,您无法卸载文件系统;操作系统会拒绝并告诉你它很忙。卸载托管数据库的文件系统的唯一方法是首先关闭与数据库的所有连接。
【讨论】: