ULID 生成器
按时间有序的短唯一 ID
在线工具箱 / 开发工具
ULID 生成器:生成 26 位的 ULID —— 前 10 位是毫秒时间,后 16 位是随机数,所以按字符串排序就等于按时间排序。拿它当数据库主键比 UUID 友好:既是全局唯一,又不会因为随机插入把索引打乱。还能反过来把一串 ULID 解析回生成时间。
它和 UUID 的差别
- 有序
- ULID 天然按时间递增,入库时顺序写入;UUID v4 完全随机,做主键时会造成索引页分裂,数据量大了差别很明显。
- 更短
- 26 个字符,比 UUID 的 36 个短,而且在 URL 和日志里都不需要转义。
- 抄写不出错
- 字母表是 Crockford Base32,去掉了 I、L、O、U 四个字母 —— 手抄和肉眼核对时不会把 O 看成 0、把 l 看成 1。需要定长主键(char(26))时可以直接替换 UUID。
怎么用
- 选数量和大小写,点生成。可以选「用本批统一时间」,这样一批 ULID 的时间前缀完全一致,只在随机部分不同(方便按批清理)。
- 随机数来自浏览器的 crypto.getRandomValues,全程本地生成,不上传服务器。
- 下面的「解析」框里粘一个 ULID,能算出它的生成时间、毫秒时间戳和距今多久 —— 排查数据什么时候写进来的时候很有用。生成并下载按次消耗积分。
同类工具