专栏名称: Java知音
专注于Java,推送技术文章,热门开源项目等。致力打造一个有实用,有情怀的Java技术公众号!
今天看啥  ›  专栏  ›  Java知音

为什么用雪花ID替代自增ID?

Java知音  · 公众号  ·  · 2024-12-27 10:05
    

文章预览

今天咱们来看一道数据库中比较经典的面试问题: 为什么要使用雪花 ID 替代数据库自增 ID? 同时这道题也出现在了浩鲸科技的 Java 面试中,下面我们一起来看吧。 1.什么是雪花 ID? 雪花 ID(Snowflake ID)是一个用于分布式系统中生成唯一 ID 的算法,由 Twitter 公司提出。它的设计目标是在分布式环境下高效地生成全局唯一的 ID,具有一定的有序性。 雪花 ID 的结构如下所示: 这四部分代表的含义 符号位 :最高位是符号位,始终为 0,1 表示负数,0 表示正数,ID 都是正整数,所以固定为 0。 时间戳部分 :由 41 位组成,精确到毫秒级。可以使用该 41 位表示的时间戳来表示的时间可以使用 69 年。 节点 ID 部分 :由 10 位组成,用于表示机器节点的唯一标识符。在同一毫秒内,不同的节点生成的 ID 会有所不同。 序列号部分 :由 12 位组成,用于标识同一 ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览