B+树索引的页分裂:从顺序插入的优雅到随机写入的代价

一个简单的测试揭示了令人困惑的现象:同样的硬件、同样的表结构、同样的索引设计,使用UUID作为主键的表插入速度只有自增主键的十分之一。更奇怪的是,存储空间的占用竟然相差接近一倍。 ...

10 min · 4619 words

分布式ID生成:为什么你的主键选择正在毁掉数据库性能

当一个128位的随机值作为B-tree索引的主键时,每一次插入都像是在图书馆的随机位置放一本书——图书管理员疲于奔命,书架越来越乱。这不是夸张的比喻:PostgreSQL的基准测试显示,使用UUID v4作为主键时,索引体积膨胀22%,插入速度下降34.8%。 ...

10 min · 4682 words