mybatis-plus雪华算法
MyBatis-Plus 使用雪花算法生成主键ID时,默认生成的是19位的ID。
对应java 中的Long类型 ,和mysql数据库BIGINT(19)
雪花算法(Snowflake)是一种生成分布式唯一ID的算法,它结合了时间戳和机器ID,以此生成一个19位的长整型ID。
雪花算法的19位长度由以下几部分组成:
-
1位不用,因为长整型的最高位是符号位,所以实际能用的位数是63位。
-
41位时间戳(毫秒级),可以提供从2000-01-01 08:00:00 到 2106-02-07 06:28:15 的时间范围。
-
10位机器ID(可以由5位数据中心ID和5位机器ID组成)。
-
12位序列号(同一毫秒内同一个节点可以生成4096个ID)。
总结:雪花算法生成的19位ID由41位时间戳、10位机器ID和12位序列号组成,总共可以在一定的时间范围内,为全球数百万个节点提供唯一的ID。