【发布时间】:2016-05-16 10:52:41
【问题描述】:
在FMDB 的帮助下,我正在开发一个使用 sqlite 数据库的 iOS 应用程序。我曾经使用Core Data,但一次插入 5000 个项目非常慢。 FMDB 与事务使此类插入更快!
我还需要一些机制来在 sqlite 表中的某些项目更新时通知我的视图控制器。 NSFetchedResultsController 是我的解决方案,但由于我使用了FMDB,我不能再使用NSFetchedResultsController。
sqlite表更新时有什么方法可以通知吗?
【问题讨论】:
-
你的应用真的把大部分时间都花在了插入上吗?
-
我正在测试 2500 项删除 + 插入。需要 10-12 秒。 FMDB 在 0.5-0.7 秒内完成删除 + 插入。一些用户拥有多达 5000-6000 个项目。
-
是的,但他们多久会插入和删除整个集合?如果他们导入 ONCE,然后随着时间的推移逐步更新/扫描,那么您就放弃了一次性操作的大量功能。如果他们的主要操作是导入和删除那么多数据,那可能是合理的。
-
另外,您是否使用仪器找出原因并更改批处理以查看它如何影响性能?
-
你必须自己动手。这就是 Core Data 为您所做的一部分。
标签: objective-c sqlite core-data nsfetchedresultscontroller fmdb