首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS CoreData -启用sqlite WAL /预写日志记录有什么缺点吗

iOS CoreData -启用sqlite WAL /预写日志记录有什么缺点吗
EN

Stack Overflow用户
提问于 2013-07-05 18:59:13
回答 2查看 11.2K关注 0票数 18

在WWDC2013会议“207:核心数据中的新特性”上,他们提到您可以通过在添加持久存储时传递选项字典来启用SQLite WAL:

代码语言:javascript
复制
@{ NSSQLitePragmasOption: @"journal_mode = WAL" }

(它在iOS4+上可用,并将成为未来iOS版本的默认设置)。

我想知道在我的应用程序中为早期的iOS版本启用这是否也是一件好事。

我咨询了SQLite page about write ahead logging和他们提到的缺点,除了以下几点,大多数缺点似乎都不适用于iOS:

在主要进行读取而很少进行写入的应用程序中,

  • WAL可能比传统的回滚日志方法稍慢(可能要慢1%或2% )。

几乎所有的优点听起来都可能是iOS的优点:

  • WAL在大多数情况下都要快得多。
  • WAL提供了更多的并发性,因为读取器不会阻止写入器,写入器也不会阻止读取器。读取和写入可以继续使用WAL进行concurrently.
  • Disk I/O操作。
  • WAL使用的fsync()操作要少得多,因此在fsync()系统调用中断的系统上不容易受到问题的影响。

我断言(可能需要对我的应用程序做一些检查,以确保它不会减慢速度),这将是一件好事,但是否有任何我应该关注的缺点或任何已知的问题?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17487306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档