我在我的应用程序中提高了查询的性能,我有几个函数,我纯粹做插入/更新,添加begin / commit大大提高了速度。
但是,我在应用程序启动时运行的主要功能是基于彼此的条件插入/更新和选择。
我担心的是我会开始事务,有条件地将一些数据插入表X,然后在表X上选择,查询将找不到任何数据,直到提交事务,我的问题是否正确?< / p>
作为一种解决方法,我可以使用begin / commit进行插入/更新,然后执行select,然后在begin / commit中执行进一步的事务处理吗?
请不要告诉我使用FMDB或核心数据,我已经致力于这条路径,提供一些修复。
答案 0 :(得分:0)
担心的是我会开始事务,有条件地将一些数据插入表X,然后在表X上选择,查询将找不到任何数据,直到提交事务,我的关注是否正确?< / p>
没有。作为BEGIN TRANSACTION状态的文档,更新和插入始终在事务中完成,因此如果存在,您将看到此问题。当然,这假定所有SQL语句都使用相同的数据库连接完成。