首页 > 在线生成类 > uuid

UUID v7来了,数据库性能问题有解了

2026-03-11 AI 小宇哥

UUID一直被人诟病不适合当数据库主键,因为太随机。现在新标准RFC 4122更新了,带来了UUID v7,专门解决这个问题。老版本UUID v4完全随机,导致

UUID一直被人诟病不适合当数据库主键,因为太随机。现在新标准RFC 4122更新了,带来了UUID v7,专门解决这个问题。

老版本UUID v4完全随机,导致数据库索引频繁分裂、写入变慢。UUID v1虽然能排序,但会暴露MAC地址,有隐私风险。UUID v7把时间戳放在最前面(48位Unix毫秒时间戳),后面是随机数。这样生成的ID在时间上是“趋势递增”的——越晚生成的数值越大。

实测数据显示,UUID v7相比v4,范围查询性能提升40%以上,写入时的页分裂次数大大减少,性能接近自增ID。

怎么用v7?MySQL 8.0以上可以通过 UUID_TO_BIN(UUID(), TRUE) 启用时间排序;Percona Server等数据库已经提供专门的 UUID_V7() 函数;各大编程语言的UUID库也陆续开始支持v7。

如果你正在用UUID又饱受性能困扰,可以考虑迁移到v7。它不仅解决了唯一性问题,还解决了顺序问题,是目前分布式系统ID生成的最佳折中方案。


相关文章