利用mysql数据库生成UUID

select uuid_short()

生成的为一个64位无符号整数,可用字符串接受,其生成规则如下图:
在这里插入图片描述

  • 前面8个bit位一个字节的值server_id & 255
  • 中间32位一共四个字节为数据库启动时间戳单位秒
  • 最后24位3个字节为自增变量值

可以通过**show variables like ‘%server_id%’**查看servr_id
在server_id为0的条件下当前的时间戳为1580000000000,对应秒1580000000,其左移24位的值为26508001280000000,生成的大于此值,所以现在生成的uuid肯定不少于17位。
如果server_id=1,则2^56 + 26508001280000000 = 98465595317930000,此时uuid大于此值,随着自增量的增大可能为增加到18位。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章