2

在 WAL 的原始文档中,明确说明了FULL和同步之间的区别1NORMAL

写入事务非常快,因为它们只涉及写入一次内容(相对于回滚日志事务两次)并且因为写入都是顺序的。此外,不需要将内容同步到磁盘,只要应用程序愿意在断电或硬重启后牺牲耐用性。(如果 PRAGMA 同步设置为 FULL,则写入器在每次事务提交时同步 WAL,但如果 PRAGMA 同步设置为 NORMAL,则忽略此同步。)

但是我在任何地方都找不到PRAGMA synchronous = OFFWAL 模式的效果。我怀疑它与NORMAL. 有人有知情的答案吗?

4

1 回答 1

1

文件还说:

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

所以使用OFF,正常交易没有区别,但是任何检查点都是不安全的。

于 2017-06-26T12:08:57.650 回答