WAL同步NORMAL与OFF

时间:2017-06-26 07:59:58

标签: sqlite wal

在WAL的原始文档中,明确说明了FULLNORMAL同步之间的差异private areas

  

写入事务非常快,因为它们只涉及编写   内容一次(与rollback-journal事务的两次相比)和   因为写入都是顺序的。此外,将内容同步到   只要应用程序愿意,就不需要磁盘   在断电或硬重启后牺牲耐用性。 (作家   如果设置了PRAGMA synchronous,则在每次事务提交时同步WAL   如果PRAGMA synchronous设置为NORMAL,则为FULL但省略此同步。)

但我无法在WAL模式中找到PRAGMA synchronous = OFF的任何效果。我怀疑它与NORMAL相同。任何人都有通知的答案?

1 个答案:

答案 0 :(得分:0)

documentation也说:

  

在WAL模式下,当同步为NORMAL(1)时,WAL文件在每个检查点之前同步,并且在每个完成的检查点之后同步数据库文件,并且当WAL文件在检查点之后开始重用时同步WAL文件头

因此,使用OFF,正常交易没有区别,但任何checkpoint都不安全。