iOS CoreData - 启用sqlite WAL / Write-Ahead 登陆有什么缺点?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (27)

在WWDC 2013会,他们提到可以在添加持久性存储时通过传递选项字典来启用SQLite WAL:

@{ NSSQLitePragmasOption: @"journal_mode = WAL" }

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

提问于
用户回答回答于

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文件保留为旧版本的剩余部分。问题是你最终会遇到不一致的数据库。

扫码关注云+社区