把某一行从 1 改成 2,如果直接改磁盘上的数据页,这是一次随机写。数据库每秒要改成千上万行,数据页在磁盘上的位置又是分散的,全靠随机写会立刻碰到 IOPS 上限。日志的作用就是把这个随机写换成顺序写。 为什么需要 WAL 顺序写和随机写不在同一个量级:机…
2.3k
0
8
Cache 孙 Published · 2026-10-18
Welcome
7AA7 Blog
Accounts require administrator approval before you can sign in with the password you set. Username must be 5+ letters or digits; email is used for password recovery.
把某一行从 1 改成 2,如果直接改磁盘上的数据页,这是一次随机写。数据库每秒要改成千上万行,数据页在磁盘上的位置又是分散的,全靠随机写会立刻碰到 IOPS 上限。日志的作用就是把这个随机写换成顺序写。 为什么需要 WAL 顺序写和随机写不在同一个量级:机…
重构失败很少是因为设计能力不够,多数是因为一次改动太大:改到一半发现行为理解错了,此时进退两难——往前是未知,往后是几百个文件的 diff 已经无法撤销。让重构可控的核心不是技术,是把不可控的部分切小。 重构与改行为是两件事 重构的严格定义是:在不…
现代关系库都提供了原生 JSON 类型:MySQL 的 JSON、PostgreSQL 的 jsonb。它让"先上线再说"变得非常容易——不用改表结构就把业务属性塞进去了。问题是这类字段用久了,往往会变成查询瓶颈的来源,而改造成本随数据量增长。 什么时候 JSON 字段是合理的 属性…