我有一个使用 sqlite 作为数据库的 Mac 应用程序。在 OSX 10.7 和 10.8 上,当应用程序启动时,它会创建一个文件作为数据库存储:appName.sqlite
升级到10.9 Mavericks后,我注意到当我启动应用程序时,它现在创建三个文件。
- 应用程序名称.sqlite
- appName.sqlite-shm
- appName.sqlite-wal
我假设它们是某种临时文件,但我无法打开其中任何一个。据我了解,在 10.9 Mavericks 中,SQLite 已更新,我想知道此行为是否相关。
任何见解都会非常有帮助。
谢谢
最佳答案
邓肯的回应让我找到了正确的方向,我做了更多研究,结果发现发行说明中的答案是正确的......
https://developer.apple.com/library/mac/releasenotes/DataManagement/WhatsNew_CoreData_OSX/
Mavericks 对默认 SQLite 行为进行了以下更改,这导致了我的问题...
“核心数据 SQLite 持久存储将默认在 10.9 或之后链接的所有应用程序上使用 WAL Journal_mode。此模式提供比经典 SQLite 回滚(删除)日志更好的可靠性和性能。但是,不建议使用 WAL Journal_mode对于只读数据库文件,或者需要与 OS X v10.6 或更早版本互操作的文件。”
关于objective-c - 使用 SQLite 数据库的 Mac 应用程序具有在 10.9 Mavericks 中创建的三个数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19825080/