我在应用程序的整个生命周期中运行一系列查询。
目前我正在使用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()
较低,因此我认为保持数据库开放可以获得性能优势。
但是,我相信临时对象会建立起来,这可能会导致内存问题。关闭数据库可以清除临时对象。
- 什么时候应该打开和关闭数据库连接?(例如应用程序进入后台时)
- 在低内存情况下是否应运行VACUUM?