利用mysql数据库生成UUID

select uuid_short()

生成的为一个64位无符号整数,可用字符串接受,其生成规则如下图(自增满则启动时间+1s):
利用mysql数据库生成UUID_第1张图片
  实际计算公式:(server_id&255)<<56 + (server_startup_time_in_seconds << 24) + incremented_variable++
满足以下条件可以保证唯一:

  • mysql集群的所有节点的server_id在0~255之间,且各节点server_id唯一
  • mysql多次restart之间不会回退系统时间
  • mysql两次restart之间uuid_short()的平均每秒调用频次不超过16000000次;若重启自增变量会重新初始化,如果自增溢出进位到起动时间的速度赶上秒数变化,会导致重启后可能重复。

可以通过 show variables like ‘%server_id%’ 查看server_id

你可能感兴趣的:(mysql)