Published on

UUID和数据库主键

Authors
  • avatar
    Name
    Lif
    Twitter

UUID

uuid是由网卡MAC地址、时间戳、名字空间(Namespace)、随机或伪随机数、时序等因素随机生成的一个字符串。有128位,重合概率是2的128次方。

Unique

突发奇想用uuid做数据库主键。

  • 可以保证全局唯一性
  • 可以分布式生成
  • 无序插入可以避免锁竞争
  • 猜不到,很安全
  • 易于合并、迁移

但是也有一些问题

  • 存储开销大
  • 性能没有自增id高
  • 手动根据id搜索数据很难
  • 生成效率可能会比较差
  • 不能通过id确定创建顺序