UUID 生成数据库索引分布式系统
2026 UUID 生成最佳实践:v1 vs v4 vs v7 — 为什么 UUID v7 解决了 92% 的 MySQL/PostgreSQL INSERT 性能问题(100 万行实测)
v1(MAC+时间)、v4(纯随机,最常用)、v6(重排 v1 时间序)、v7(unix 毫秒时间戳+随机,RFC 9562 2024 年 7 月标准 — 取代 v1/v6)、v8(自定义业务域)的横向对比基准。MySQL 8 InnoDB 100 万行插入:BIGINT 自增 / BINARY(16) UUID v4 / BINARY(16) UUID v7 三者对比,v4 造成 4.3× 页分裂、100 万次插入后索引体积 2.8×、256 并发写入 QPS 降 68%。v7 在索引体积、插入延迟、缓冲池命中率三项上与 BIGINT 自增差距 <4%。4 个反模式:永远不要用 CHAR(36) 存 UUID(2.3× 存储,ASCII 比较慢)、永远不要把 v1 的 MAC 暴露在公开 URL(Wireshark 查 NIC 厂商+主机名)、不要拿 v4 当分布式有序 ID、以及 103 万亿个 v4 ID 的碰撞概率计算(0.0000002%)。
作者 Korelyy Team
9 min 阅读