2

我有一个使用 sqlite 作为数据库的 Mac 应用程序。在 OSX 10.7 和 10.8 上,当应用程序启动时,它会创建一个文件作为数据库存储:appName.sqlite

升级到10.9 Mavericks后,我注意到当我启动我的应用程序时,它现在创建了三个文件。

  • appName.sqlite
  • appName.sqlite-shm
  • appName.sqlite-wal

我假设它们是某种临时文件,但我无法打开它们中的任何一个。据我了解 10.9 Mavericks,SQLite 已经更新,我想知道这种行为是否相关。

任何见解都会非常有帮助。

谢谢

4

1 回答 1

2

邓肯的回应让我朝着正确的方向前进,我做了更多的研究,结果发现发行说明中的​​答案是正确的......

https://developer.apple.com/library/mac/releasenotes/DataManagement/WhatsNew_CoreData_OSX/

Mavericks 对默认 SQLite 行为进行了以下更改,这导致了我的问题...

“Core Data SQLite 持久存储将默认在 10.9 或之后链接的所有应用程序上使用 WAL journal_mode。这种模式提供了比经典 SQLite 回滚(删除)日志更好的可靠性和性能。但是,不建议将 WAL journal_mode 用于读取-仅用于数据库文件,或用于需要与 OS X v10.6 或更早版本进行互操作的文件。”

于 2013-11-11T17:56:24.223 回答