【发布时间】:2014-09-16 12:52:40
【问题描述】:
我的 ios 应用程序使用 FMDB 框架来处理 SQLite 数据库。为了从服务器更新数据库,我使用 FMDatabaseQueue:
- (BOOL)executeUpdate:(NSString *)update
{
FMDatabaseQueue *dbQueue = [FMDatabaseQueue databaseQueueWithPath:databasePath];
__block BOOL success = NO;
[dbQueue inTransaction:^(FMDatabase *db, BOOL *rollback) {
success = [db executeUpdate: update];
}];
return success;
}
这种方法允许我使用多个线程来处理数据库。但是查询将按照收到的顺序执行。当我更新数据库中的大块数据时,其他查询(比如为 UI 线程获取一些数据)必须等待太久。 有没有办法让其他查询在更新过程中读取提交的数据?(如 JDBC 隔离级别 TRANSACTION_READ_COMMITTED)
【问题讨论】:
-
你读过this吗?
-
是的,我读过这个,但我找不到如何使用 FMDB 设置 PRAGMA
-
好的,所以这个问题应该改写一下。