<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>持久化 on zjding'Log</title><link>http://blog.zjding.com/tags/%E6%8C%81%E4%B9%85%E5%8C%96/</link><description>Recent content in 持久化 on zjding'Log</description><generator>Hugo -- 0.140.1</generator><language>zh</language><copyright>zjding&amp;rsquo;Log</copyright><lastBuildDate>Tue, 18 Aug 2026 00:00:00 +0800</lastBuildDate><atom:link href="http://blog.zjding.com/tags/%E6%8C%81%E4%B9%85%E5%8C%96/index.xml" rel="self" type="application/rss+xml"/><item><title>WAL 如何把复杂提交缩成一次顺序写</title><link>http://blog.zjding.com/posts/260818/</link><pubDate>Tue, 18 Aug 2026 00:00:00 +0800</pubDate><guid>http://blog.zjding.com/posts/260818/</guid><description>&lt;!--
input: PostgreSQL 与 SQLite 官方 WAL 文档、SQLite 3.53.2 本地实验、WAL 原理讨论和小黑视觉参考。
output: 解释 WAL 的提交顺序、性能来源、checkpoint 边界及其在 durable workflow 中适用条件的技术文章。
pos: content/posts/260818 的主文章入口。
-->
&lt;p>最近看了一篇推，主要讲的是 PostgreSQL 执行一条 &lt;code>UPDATE&lt;/code> 时，需要持久化的对象通常不止一行记录。heap page、相关索引页、事务状态和其他元数据可能一起变化；机器在写回过程中断电，磁盘就会留下部分新 page 和部分旧 page。数据库仍然要给出一个确定结果：这笔事务已经提交，或者恢复后继续把它完成。&lt;/p></description></item></channel></rss>