我在应用程序的整个生命周期中运行了一系列查询。
我目前正在使用FMDB(围绕 Sqlite C API 的 Objective-C 包装器),并且在每次查询之前我都会打开和关闭。
FMDatabase * db = [FMDatabase databaseWithPath:pathToMyDB];
[db open]
FMResultSet * s = [db executeQuery:@"SELECT * FROM myTable"];
// Use FMResultSet
[db close];
打开和关闭触发器fopen()
并fclose()
降低,所以我相信我可以通过保持数据库打开来获得perforce胜利。
但是,我相信临时对象会堆积起来,这可能会导致内存问题。 关闭数据库会清除临时对象。
- 我应该什么时候打开和关闭数据库连接?(例如应用程序确实进入了后台?)
- 我应该在内存不足的情况下运行VACUUM吗?