我在这里找到了报价
PostgreSQL 是依赖预写日志 (WAL) 的数据库之一——所有更改首先写入日志(更改流),然后才写入数据文件。这提供了持久性,因为在崩溃的情况下,数据库可能会使用 WAL 执行恢复——从 WAL 读取更改并将它们重新应用于数据文件。
从这篇文章https://blog.2ndquadrant.com/basics-of-tuning-checkpoints/
假设有 WAL 文件继续跟踪查询
UPDATE page SET view_count = view_count + 1;
我可以想象这样的情况,postgres 已经将此 WAL 应用于 DB,但它在应用后立即崩溃。
DB 还没有更新最新的 WAL 位置,也没有删除 WAL 日志文件。
当 DB 启动时,它会进行恢复并再次重新应用此 WAL,不是吗?数据库中的最终值会变成view_count + 2
吗?
请指教