在线生成 ULID(通用唯一词典可排序标识符),比 UUID 更易排序和调试,兼具唯一性和时间顺序性,特别适合需要时间有序 ID 的分布式系统、日志记录和数据库主键场景。
ULID(通用唯一词典可排序标识符)是 128 位标识符,编码了时间戳和随机分量,既唯一又可按时间排序。
ULID 可按创建时间排序(不同于 UUID v4),URL 安全,且字符串表示更紧凑(26 字符 vs UUID 的 36 字符)。
ULID 的优势在于:1)天然有时序,可按字符串直接排序;2)Base32 编码,URL 安全无需编码;3)只有 26 个字符,比 UUID 的 36 个字符(含连字符)更紧凑;4)可读性更强。缺点是依赖时间,精度相同毫秒内的 ULID 仍是随机顺序。
ULID 优势:时间戳前缀使其按创建时间天然有序(对 B-tree 索引更友好,减少页分裂);字符串形式比 UUID 短(26 字符 vs 36 字符);URL 安全(只含大写字母和数字)。UUID v4 优势:使用更广泛、库支持更完善;完全随机,无时间信息泄露顾虑。场景选择:数据库主键、需要排序的 ID 场景选 ULID;需要完全随机 ID 且不关心顺序选 UUID v4。