5

アプリのライフサイクル全体で一連のクエリを実行します。

現在、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を実行する必要がありますか?
4

1 に答える 1