在WAL的原始文档中,明确说明了FULL
和NORMAL
同步之间的差异private areas:
写入事务非常快,因为它们只涉及编写 内容一次(与rollback-journal事务的两次相比)和 因为写入都是顺序的。此外,将内容同步到 只要应用程序愿意,就不需要磁盘 在断电或硬重启后牺牲耐用性。 (作家 如果设置了PRAGMA synchronous,则在每次事务提交时同步WAL 如果PRAGMA synchronous设置为NORMAL,则为FULL但省略此同步。)
但我无法在WAL模式中找到PRAGMA synchronous = OFF
的任何效果。我怀疑它与NORMAL
相同。任何人都有通知的答案?
答案 0 :(得分:0)
在WAL模式下,当同步为NORMAL(1)时,WAL文件在每个检查点之前同步,并且在每个完成的检查点之后同步数据库文件,并且当WAL文件在检查点之后开始重用时同步WAL文件头
因此,使用OFF,正常交易没有区别,但任何checkpoint都不安全。