PostgreSQL的表为什么越用越大:从MVCC到Vacuum的完整清理机制解析

当你在PostgreSQL中执行了一万次UPDATE操作后,可能会发现一个令人困惑的现象:表的数据行数没变,但磁盘占用却增长了好几倍。更奇怪的是,即使你执行了DELETE删除了大量数据,磁盘空间也没有减少。 ...

17 min · 8324 words

数据库连接池不是越大越好:为什么10个连接能击败100个

2013年,Oracle Real World Performance Group发布了一段令人震惊的视频。他们在压力测试中,将9600个并发线程的数据库连接池从2048降到96——不做任何其他优化,响应时间从100毫秒骤降到2毫秒。 ...

13 min · 6445 words

连接池耗尽:为什么你的数据库连接池总是成为生产事故的元凶

2025年11月,某电商平台在“双十一”与“黑色星期五”促销期间遭遇了一场灾难:API响应时间从200ms飙升到45秒,每小时的营收损失达到89万美元。事后复盘发现,罪魁祸首是一个配置错误的数据库连接池——最大连接数被设置为10,而数据库服务器完全可以处理500个并发连接。 ...

13 min · 6450 words