PostgreSQL的表为什么越用越大:从MVCC到Vacuum的完整清理机制解析
当你在PostgreSQL中执行了一万次UPDATE操作后,可能会发现一个令人困惑的现象:表的数据行数没变,但磁盘占用却增长了好几倍。更奇怪的是,即使你执行了DELETE删除了大量数据,磁盘空间也没有减少。 ...
当你在PostgreSQL中执行了一万次UPDATE操作后,可能会发现一个令人困惑的现象:表的数据行数没变,但磁盘占用却增长了好几倍。更奇怪的是,即使你执行了DELETE删除了大量数据,磁盘空间也没有减少。 ...
医院值班系统中,两位医生同时尝试放弃自己的值班班次。每个医生在操作前都会检查:是否至少还有另一位医生在值班?检查结果都显示"是",于是两人都放心地提交了更新。最终结果:当晚没有任何医生值班。 ...
1995年,IBM 的研究人员发表了一篇名为"A Critique of ANSI SQL Isolation Levels"的论文。这篇论文指出了 ANSI SQL 标准对事务隔离级别定义的模糊性,并引入了一个在当时鲜为人知的异常现象:写倾斜(Write Skew)。近三十年后,这个概念仍然是数据库领域最容易被误解的问题之一。 ...