代码改变世界

sqlite rollback journal vs. wal

2026-04-15 23:08  蜡笔小旧  阅读(18)  评论(0)    收藏  举报

背景

今天看到了一个新名词WAL,跟在了sqlite后面,变产生了好奇。

sqlite 支持两种commit和rollback模式.  

    1. rollback journal (默认)                     

    2. wal(write-ahead logging)

比喻:

sqlite是一家银行, 有一本总账.

1.  rollback journal 直接改账本,但是先拍一张旧照片, 改完就删掉  (出问题用原来照片恢复)

2. wal 不动账本,先记小本子wal,  有空再整理进总账本                      (拿小本子重新算一遍,恢复最新状态)

性能:

wal更快

 REF:

https://sqlite.org/lockingv3.html#rollback

https://sqlite.org/wal.html