【发布时间】:2013-05-21 14:15:12
【问题描述】:
我在应用程序的整个生命周期中运行了一系列查询。
我目前正在使用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 胜利。
但是,我相信临时对象会堆积起来,这可能会导致内存问题。 Closing the database 清除临时对象。
- 我应该何时打开和关闭数据库连接? (例如,应用程序确实进入了后台?)
- 我应该在内存不足的情况下运行 VACUUM 吗?
【问题讨论】:
标签: ios cocoa-touch sqlite memory-management