1
wang1986 2011-09-07 18:17:08 +08:00
牛刀?
|
2
levey 2011-09-07 18:19:07 +08:00
CoreData比较麻烦,建议轻量级的sqlite封装。
|
3
sharkli 2011-09-07 19:55:50 +08:00
我用了一段时间CoreData以后发现实在是麻烦。现在已经改成FMDB来操作db了。
|
5
dongsheng OP @sharkli 看这篇文章时看到过这个库 http://inessential.com/2010/02/26/on_switching_away_from_core_data
刚才想起core data还有个优点是在内存里操作数据,不是实时写入,这样对省电有好处。不知道FMDB能不能在内存中操作数据,改天研究下。 |
6
gonefish 2011-09-07 20:20:00 +08:00
1.直接写的话,代码真是一堆。不过有一个查询编辑器,你可以设定条件,然后通过一个方法用占位符式把变量填进去。
2.太复杂的升级,要手动写吧。 |
8
keakon 2011-09-07 20:23:37 +08:00
@dongsheng 初学Core Data时曾经做过一个测试,批量插入、更新和删除数据时,它比SQLite慢2个数量级。而我经常需要批量更新几百条数据,差距基本上就是秒和毫秒级的,于是果断放弃了。
|
9
gonefish 2011-09-07 21:04:10 +08:00
Core Data和SQLite根本就不是一个东西,比较速度没有意义。再说SQLite只是Core Data的一个持久介质。
|
10
Mattsive 2011-09-07 21:50:11 +08:00
当初看了一段 Core Data 文档后果断改用 FMDB 的飘过,整个项目就没在数据处理上花什么功夫。
|
11
dongsheng OP 难道没有对Core Data的正面评价?大家好像都是直接跳过Core Data这个方案了。。。
|
12
dongsheng OP @keakon Core Data慢不奇怪,但真能差出数量级来?你是用NSFetchedResultsController还是直接读出数据集的?前者是lazy loading,性能不差的。
|
13
keakon 2011-09-07 23:14:43 +08:00
@dongsheng 直接操作啊,更新数据还要lazy干啥…印象中操作1000个花了4秒,而sqlite不到0.1秒。于是我立刻理解iReadG标记已读时为什么会阻塞半天主线程了…
|
14
Kai MOD 官方有说过这样一句:
Core Data is not a relational database or a relational database management system (RDBMS). |
17
wtl 2011-09-08 10:13:12 +08:00
|