FMDB支持的事务类型
FMDB支持的事务类型
在数据库中,事务可以保证数据操作的完整性。当存在大量并发操作,容易出现死锁问题。在SQLite中,为了解决该问题,提供三种事务模式,分别为DEFFERED、IMMEDIATE、EXCLUSIVE。
在DEFFERED模式事务中,事务开始执行时,不预先获取任何锁。当进行读操作,获取SHARED LOCK锁;当进行第一次写操作,获取RESERVED锁。
在IMMEDIATE模式事务中,事务开始执行,就获取RESERVED锁。这时,其他连接只能进行读操作。
在EXCLUSIVE模式事务中,事务开始执行,就获取EXCLUSIVE锁。这是,其他连接无法进行任何读写操作。
而FMDB支持DEFFERED和EXCLUSIVE两种模式。当使用beginTransaction方法,使用EXCLUSIVE模式,适合数据库读写较少的情况。当使用beginDefferedTransaction方法,则使用DEFFERED模式,适合读写频繁的场景。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步