首页 » 智能 » Snowflake 自增ID算法粗解_主键_散布式

Snowflake 自增ID算法粗解_主键_散布式

萌界大人物 2024-12-23 12:37:47 0

扫一扫用手机浏览

文章目录 [+]

那么为何还要引入snowflake呢?

INT自增主键

自增主键是办理主键天生的最大略方案,它有如下上风:

Snowflake 自增ID算法粗解_主键_散布式 Snowflake 自增ID算法粗解_主键_散布式 智能

数据库本身卖力主键天生,效率高数据库本身担保主键顺序递增,方便存储和检索

相对应的,它也有如下缺陷:

Snowflake 自增ID算法粗解_主键_散布式 Snowflake 自增ID算法粗解_主键_散布式 智能
(图片来自网络侵删)
严重依赖数据库做事强顺序递增,不易横向扩展分库分表很难处理未便利导入数据上层运用在插入数据时,如果须要获知主键,必须再次查询

总结来说,INT自增主键在单机性能和主键严格递增上由很大的上风,但是在扩展性和分布式数据库上有较大限定

GUID主键

GUID(全局唯一标识符,Globally Unique Identifier)为128位(16字节),它利用太网卡地址、纳秒级韶光、芯片ID码和许多可能的数字根据算法动态天生,理论上可以有2^128个结果,

以是产生2个相同的ID的几率非常小。

它的优点如下:

运用天生,解放做事器压力天生的ID可以做到全库唯一,方便数据库分库分表、数据导入

缺陷也很明显:

16字节太长,摧残浪费蹂躏空间非顺序递增,增加数据库存储和检索开销

在做数据库主键选则时,如果系统较小,业务逻辑相对大略,可以考虑利用自增主键;如果业务繁芜,涉及到分库分表分布式等,建议考虑GUID。
如果认为GUID的缺陷太影相应用,

可以考虑立时开始重点先容的分布式ID天生算法 Snowflake

Snowflake是由Twitter提出并首先利用的分布式ID天生算法,利用它来天生分布式趋势递增的Id。

分布式Id有分布式系统的节点自己天生趋势递增主键非严格顺序递增的,而是根数韶光顺序递增,这在一定程度上担保了数据存储和索引的效率算法讲解

总长度为64位长整型(8字节)

1位:首字节固定为0,来担保所有天生的数据都是正数

41位:第2到第42位共41字节,用于天生毫秒级韶光戳,打算大概(2^41−1)/(1000∗60∗60∗24∗365)=69 年,对付一样平常系统来说绝对够用。

10位: 第43位到第52位为事情机ID,可表示2^10=1024台设备,一样平常高5位表示机房Id(datacenterId),低5位表示事情节点ID(workid)

12位:第53位到第64位表示序列号,2^12-1=4095

综上算法,表示单机每毫秒可以供应4095个Id,所有机器每毫秒可天生40951024=4194304个Id。

它的优点如下:

运用天生,解放做事器压力天生的ID可以做到全库唯一,方便数据库分库分表、数据导入8字节,长整型,节省空间趋势递增,方便数据存储和查询
标签:

相关文章

深圳IT市场盛况,打折狂欢,科技盛宴来袭

随着科技的飞速发展,我国IT产业正逐渐成为全球瞩目的焦点。在深圳这座充满活力的现代化大都市,IT市场始终保持着蓬勃发展的态势。近日...

智能 2024-12-28 阅读0 评论0

深圳IT通讯产业的崛起与未来展望

随着我国经济的快速发展和信息化进程的不断推进,IT通讯产业已成为我国国民经济的重要组成部分。深圳,作为我国改革开放的前沿阵地,其I...

智能 2024-12-28 阅读0 评论0

清华IT总部,创新引擎驱动未来发展

随着信息技术的飞速发展,我国在IT领域取得了举世瞩目的成就。清华IT总部作为我国IT产业的领军人物,一直以来都以其独特的创新精神和...

智能 2024-12-28 阅读0 评论0

渭南IT外包,助力企业数字化转型升级

随着我国经济的快速发展,企业对信息技术的需求日益增长。在这个信息化时代,企业要想在激烈的市场竞争中立于不败之地,就必须加快数字化转...

智能 2024-12-28 阅读0 评论0