UUIDv4 · 生日问题 · 精确去重

UUID 冲突实验室

这里正在往 MySQL 里真实存储 1 亿个 UUIDv4。你觉得会有冲突的吗?主键本身就是查重器;下面会直接给出当前实测判定,你也可以粘贴一个 UUID 查查它有没有撞进表里。

MySQL 实况

后端启动时查询一次、每分钟刷新 COUNT(*);写入和删除会增量更新快照
数据库实际行数 — 原始 UUID 负载 —
基础实验目标 — 超过 101,000,000 才裁剪
补齐进度 — 状态未知
冲突判定 — 等待状态返回

查查你的 UUID

走 BINARY(16) 主键索引;冲突事件会写入独立账本,主表裁剪不会清除历史冲突数

输入一个 UUIDv4,看它是否已经撞进这张表。

亲手追加一批

UUIDv4 由服务端 SecureRandom 生成;100000 条会拆成 20 次批量插入

选择一个规模,后端会真的生成并插入。

为什么 1 亿条还看不到冲突?

下面是公式推算,不是本次数据库实测
UUIDv4 随机位122 位
1 亿条的比较对—
1 亿条冲突概率—
诚实说明:0 冲突是实验观察,不是数学证明。UUIDv4 的安全性依赖生成器有足够的随机熵;实现错误或熵源有问题的 UUID 仍然可能撞。