在3.7版中引入的预写日志功能上的SQLite documentation中,有些注释使我有些困惑。
链接页面显示“不需要将内容同步到磁盘,只要应用程序愿意在断电后牺牲耐用性”。然后几段下来,它说:“检查点确实需要同步操作,以避免断电或硬重启后数据库损坏的可能性”。
那么,如果我使用WAL,我的数据库是否有更大的断电损坏风险?
最佳答案
WAL不会增加损坏的风险(因为它在检查点时使用同步操作)。
但是,如果发生崩溃(断电或硬重启),您将丢失自上一个检查点以来的所有事务;否则,您将丢失所有事务。这就是“牺牲耐用性”的意思。
关于database - SQLite WAL在断电时有多安全?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3584530/