gpt4 book ai didi

ios - 如何使用 sqlite 在 ios 应用程序中使用 "read commited"隔离级别?

转载 作者:行者123 更新时间:2023-11-28 21:58:06 25 4
gpt4 key购买 nike

我的 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)

最佳答案

降低隔离级别仅适用于共享缓存模式,这在移动设备上没有意义。

要增加并发性,即允许读者和作者同时访问数据库,启用 WAL mode .

关于ios - 如何使用 sqlite 在 ios 应用程序中使用 "read commited"隔离级别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25869303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com