

科普文:软件架构数据库系列之【我们最讨厌的 PostgreSQL 部分:The Part of PostgreSQL We Hate the Most】
摘要: 卡耐基梅隆大学的研究团队在OtterTune博客中指出,PostgreSQL的多版本并发控制(MVCC)实现存在严重缺陷,是其最糟糕的设计部分。PostgreSQL采用追加式存储方式,每次更新都复制整行数据而非仅存储变更部分,导致存储膨胀和性能下降。此外,其版本链采用旧到新(O2N)顺序,需要遍历长链或维护冗余索引条目,而自动清理机制(autovacuum)难以有效回收空间,常因长事务阻塞形成恶性循环。相比Oracle、MySQL等使用增量存储的数据库,PostgreSQL的MVCC设计增加了I/O

