发布于 2026-09-10T10:59:49.236885Z · Andrew Atkinson · andyatkinson.com

Andrew Atkinson 记录了一次把 UUID 主键默认值从 v1、v4 换成 v7 的迁移,数据库跑在 PostgreSQL 18.4。改默认值只要一条 ALTER TABLE,但它需要表级排他锁,连 SELECT 都会被挡住,团队靠很短的锁超时、大量重试并主动取消持锁查询才完成切换。收益最大的是一张数十亿行、每分钟被调用一万两千次的多行插入语句,平均执行时间快了 23 倍。v7 的时间有序还能减少页分裂、缩小索引,进而省下 CPU 与 I/O。
Andrew Atkinson 记录了一次把 UUID 主键默认值从 v1、v4 换成 v7 的迁移,数据库跑在 PostgreSQL 18.4。改默认值只要一条 ALTER TABLE,但它需要表级排他锁,连 SELECT 都会被挡住,团队靠很短的锁超时、大量重试并主动取消持锁查询才完成切换。收益最大的是一张数十亿行、每分钟被调用一万两千次的多行插入语句,平均执行时间快了 23 倍。v7 的时间有序还能减少页分裂、缩小索引,进而省下 CPU 与 I/O。
来源记录
- center.info_item · 332824b58d8e91a4 · 2026-10-03T04:08:35.169032Z
- pgweb.info_item · 332824b58d8e91a4 · 2026-10-03T04:08:55.967155Z