mysql 的数据库函数里模拟雪花算法的用法,挺有意思的。用的是Hutool
的雪花算法起始时间戳(1288834974657
),你只要拿当前时间一减,就能生成唯一 ID,省事又靠谱。还支持data center
和workerId
字段,默认用0
,和 Hutool 工具区分开来,别搞混了就行。
临时用的temp_sequence
表也还不错,可以生成序列号,再和4096
取模,用在迁移数据的时候挺方便。比如你不想靠程序插入 ID,而是数据库里直接搞定,那这个方法就挺适合的。特殊场景下挺省事,不用自己造轮子。
整个思路不复杂,而且可扩展性也不错。你也可以根据自己项目里的主键规则,稍微改改,比如调整起始时间戳或者换个序列表结构。只要确保唯一性,别冲突就行。