原创Blog,转载请注明出处
blog.csdn.net/hello_hwc
欢迎关注我的iOS SDK详解专栏
http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html
前言:
本文更像是一个整理,整理一些我认为的和其它Google来的观点,供大家参考,所有参考的部分最后我都会列在参考链接里。
我对CoreData比较熟悉,SQLite相对来说差一点,所以这里CoreData可能会写的多一点。
CoreData的优点
CoreData的缺点
直接使用SQLite的优点
直接使用SQLite的缺点
总体来说,假如底层都使用SQLite作为DB存储,性能没有太大差别。性能分析这部分源自于这篇文章,这篇文章分析了相同数目的数据量,CoreData和直接使用SQLite的比较
http://www.drdobbs.com/mobile/ios-data-storage-core-data-vs-sqlite/240168843?pgno=2
内存使用
占用磁盘大小
查询性能
从上文的性能分析来看,随着iOS 设备硬件性能的越来越好,二者在性能上的大部分的时候差别已经不大。StackOverflow或者Google上的观点也越来越支持使用CoreData而不是直接使用SQLite。以下我就介绍下,如果是我来选择数据存储,如何去选择。
第一步,要明确一点,就是不管是CoreData还是直接使用SQLite,都是为了数据持久化,数据持久化的核心是存储的数据是什么。
第二步,分析自己的数据量,数据之间的关系,对数据的操作。优先考虑CoreData吧,因为你学会了真得会发现它非常好用,绝大部分App的数据量达不到CoreData性能瓶颈的时候。但是一下情况下,要考虑SQLite
在这篇文章里,我简单介绍了如何使用Log以及性能评估工具来分析
CoreData性能相关
绝大部分CoreData性能出问题的时候,都是因为使用不当。例如在主线程上进行大量数据操作。 出现问题了,优先去找解决办法,不管是StackOverflow还是Google,几乎所有的问题你遇到的别人都遇到过。另外,如果有时间,我十分推荐好好读读官网的文档,Core Data Programming Guide
最后在使用CoreData的时候,推荐三个库
http://objccn.io/issue-4-3/
http://stackoverflow.com/questions/523482/core-data-vs-sqlite-3
http://stackoverflow.com/questions/1318467/use-coredata-or-sqlite-on-iphone
版权声明:本文为博主原创文章,如需转载请注明出处
iOS 持久化存储之CoreData VS 直接SQlite
原文地址:http://blog.csdn.net/hello_hwc/article/details/46848855