利用mysql数据库生成UUID

select uuid_short()

生成的为一个64位无符号整数,可用字符串接受,其生成规则如下图(自增满则启动时间+1s):
在这里插入图片描述
  实际计算公式:(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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值