FMDB:在ios应用程序的整个生命周期中保持开放数据库是否良好?

FMDB:在ios应用程序的整个生命周期中保持开放数据库是否良好?,ios,fmdb,Ios,Fmdb,我对FMDB包装类的数据库打开和关闭操作感到困惑 如果我在中打开数据库,是否会产生问题 AppDelegate类的ApplicationdFinishLoading方法 在应用程序终止之前不要关闭 谢谢。除非更改架构,否则没有理由关闭它。因此,请保持打开状态。来自FMDB官方文档: 开场白 在与数据库交互之前,必须先将其打开。如果没有足够的资源或权限打开和/或创建数据库,则打开失败 if (![db open]) { [db release]; return; } 结束 完成对数据库的查询和更

我对FMDB包装类的数据库打开和关闭操作感到困惑

如果我在中打开数据库,是否会产生问题 AppDelegate类的ApplicationdFinishLoading方法 在应用程序终止之前不要关闭


谢谢。

除非更改架构,否则没有理由关闭它。因此,请保持打开状态。

来自FMDB官方文档:

开场白

在与数据库交互之前,必须先将其打开。如果没有足够的资源或权限打开和/或创建数据库,则打开失败

if (![db open]) {
[db release];
return;
}
结束

完成对数据库的查询和更新后,应关闭FMDatabase连接,以便SQLite将放弃其在操作过程中获得的任何资源。

因此,每次查询数据库时,都应该对数据库进行一对
open
close
调用

if (![db open]) {
[db release];
return;
}
简而言之,当您需要数据库中的内容时,请打开一个DB连接,当您使用完数据库时,请关闭它

if (![db open]) {
[db release];
return;
}

链接到文档:

那么,如果我在iOS应用程序的整个生命周期内不关闭数据库,有什么缺点呢?
SQLite将放弃在其操作过程中获得的任何资源。
,从文档中,如果不关闭连接,SQLite获取的资源将不会被释放,应用程序将出现内存问题。但是,如果要执行大量查询,最好保持数据库打开。当您打开数据库时,性能会受到影响,老实说,sqlite占用的资源并不多。只要保持它打开。如果应用程序在前台的时间超过db open,并且应用程序在后台模式db.close?并且如果db open并且它不会使用很长的时间,那么它会自动关闭吗?