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