Jos*_*phH 18 sqlite core-data ios
在WWDC 2013会议'207:Core Data中的新功能'中,他们提到您可以通过在添加持久存储时传递选项字典来启用SQLite WAL:
@{ NSSQLitePragmasOption: @"journal_mode = WAL" }
Run Code Online (Sandbox Code Playgroud)
(可在iOS4 +上使用,将成为未来iOS版本的默认设置).
我想知道在我的应用程序中为早期的iOS版本启用这通常是一件好事.
我已经查阅了关于提前写入日志的SQLite页面以及它们提到的缺点,其中大多数似乎不适用于iOS,除了:
几乎所有优点听起来都像是iOS上的好处:
我很想(可能需要对我的应用程序进行一些检查,以确保它不会减慢速度),这将是一件好事,但是我应该注意哪些缺点或任何已知问题?
Jos*_*phH 18
http://pablin.org/2013/05/24/problems-with-core-data-migration-manager-and-journal-mode-wal/表明它们可能是迁移问题,特别是:
使用迁移管理器时,Core Data将为您创建一个新数据库,并开始将实体从旧数据库逐个复制到新数据库.
当我们使用journal_mode = WAL时,除了DB.sqlite之外还有一个名为DB.sqlite-wal的附加文件.
据我所知,问题似乎是Core Data创建一个临时数据库,在那里插入所有内容,当它将其重命名为原始名称时,-wal文件将作为旧版本的剩余部分保留.问题是你最终得到了一个不一致的数据库.
(也在https://github.com/magicalpanda/MagicalRecord/issues/490上提到- 这表明如果你使用魔法记录那么它已经默认为WAL)
| 归档时间: |
|
| 查看次数: |
10796 次 |
| 最近记录: |