UUID
UUID 适合做什么,不适合做什么
UUID 的核心价值是低协调成本的唯一性。它很适合分布式系统生成 ID,但不是所有 ID 问题都应该交给 UUID。
在多个服务、多个客户端或离线环境中生成标识时,UUID 可以减少中心化发号器的依赖。比如临时任务 ID、事件 ID、导入批次 ID、幂等键,都可以使用 UUID 来降低冲突概率。
但 UUID 不适合做人类需要频繁阅读和口头沟通的编号。客服工单、订单短码、设备标签通常需要更短、更容易校验的格式。UUID 也不天然适合数据库排序,随机 UUID 可能导致索引写入分散,需要结合数据库和版本选择评估。
另一个误区是把 UUID 当成权限。一个难猜的 ID 可以降低枚举风险,但不能替代鉴权。只要资源敏感,就应该在服务端检查用户是否有访问权限。
使用建议
- 内部关联和幂等场景可以优先考虑 UUID。
- 公开短链接或人工输入场景,考虑更短的随机码并加校验。
- 数据库高写入场景,关注 UUID 版本和索引影响。