SQLite的性能优化实例分享

SQLite的性能优化实例分享
第一级缓存数据库最早接触ios SQLite,后面一直以SQLite为骨干,以前没有接触到大量的数据读写性能,所以很少关注,这一次在一个特定的场景比大多数根据批量读写做性能优化的性能提高十倍。

一般的应用场景如下:

每次程序启动时,它从服务器中提取一些数据,同时更新本地数据库的两个表,不需要写入,因此它更新字段。

因为数据缓存可以异步同时读写,所以做背景同步队列缓存的数据库操作都在排队,然后我监控关键代码写的数据库执行耗时30秒,长的一千数据更新的能源数据库,浮盘写150 / S虽然没有卡,主线程,即使在背景的消费是不可容忍的。

核心数据库操作可能是相同的。
1000:{

选择>更新或插入

选择>更新或插入

}

因为它涉及到两个表,所以会有两次,试验后,选择一个小的消息,但更新或插入({数据库队列executeUpdate:})消费,因为它不写入磁盘,然后你可以把所有的SQL语句,最后只是一次又一次后,SQLite;是不是一个交易(交易),然后尝试使用fmdb操作,在周期开始前的{开始} { }分贝dB犯,周期的结束,收拾起来。

增加交易后的一般逻辑:
开始

1000:{

选择>更新或插入

选择>更新或插入

}

承诺

测试结果非常好,整个时间从30秒下降到大约2.8秒,并且只添加了两行代码。

总结:

有过的陨石坑和通过网都是后来的经验

虽然使用技巧来提高交易的性能,但它并不安全,但这部分数据的绝对一致性要求不太高。

仿真和实际测试,有时不能复制同样的问题,因为架构,CPU,硬盘是不一样的,所以性能试验或最好的真正主体。测试时,在模拟器中很多问题都没有,因为硬盘的读写速度比真正的机器,这样可以避免很多问题,考试的时候也没有发现

当设计一个数据库时,多考虑它,思考如何扩展,如何升级,以及如何读写。
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部