QLite WAL(Write-Ahead Logging)模式主要有以下几个优点:
1. 提高写入性能WAL模式将数据先写入日志文件,然后再定期更新到实际数据文件中。这避免了每次写入都要同步更新数据文件,大大提升了写入速度。
2. 提高并发性能WAL模式采用乐观锁并发控制,允许在同一数据库的多个连接中同时写入,并发性能好于rollback journal模式。
3. 提高崩溃恢复能力WAL日志包含尚未提交到数据文件的数据变更记录,即使数据库异常关闭,也可以通过WAL恢复未提交事务。
4. 支持热备份可以直接复制WAL文件来创建一个数据库的热备份,避免停库影响业务。
5. 支持点恢复WAL包含历史所有变更记录,可以基于某一历史时间点还原数据库。
6. 减少磁盘碎片长时间运行后,磁盘碎片较小,不需要常规优化数据库文件。
7. 支持跨平台复制不同系统平台间可以通过WAL实现数据库复制,这是rollback journal模式所不支持的。
综上所述,WAL模式可以带来写入性能、并发性能、崩溃恢复能力等方面的提升,在大多数场景下都是比rollback journal模式更好的选择
二、开启WAL模式
1. 通过 SQLite 命令行工具打开数据库。 sqlite3 test.db 2. 在数据库打开后,执行 PRAGMA 命令开启 WAL 模式。 sql PRAGMA journal_mode=WAL; 3. 这样就可以开启 WAL 模式了。 4. 也可以在打开数据库时直接指定 journal_mode 参数来开启 WAL 模式。 sqlite3 test.db -journal WAL 5. 在应用程序中,可以在打开数据库连接时执行以下PRAGMA语句开启WAL模式: sql PRAGMA journal_mode=WAL; 6. 注意WAL模式要求SQLite版本在3.7.0或更高。 7. 如果想恢复到默认的rollback journal模式可以用: sql PRAGMA journal_mode=delete;
标签:WAL,数据库,写入,模式,Wal,PRAGMA,journal,SQlLite From: https://www.cnblogs.com/stroll/p/17615106.html