docs: modify database-shard-global-id-generate.md (#307)

This commit is contained in:
Zane 2024-07-24 16:20:58 +08:00 committed by GitHub
parent 38e6801a5d
commit ef7ed71dd5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -51,7 +51,7 @@ snowflake 算法是 twitter 开源的分布式 id 生成算法,采用 Scala
- 1 bit不用为啥呢因为二进制里第一个 bit 为如果是 1那么都是负数但是我们生成的 id 都是正数,所以第一个 bit 统一都是 0。
- 41 bits表示的是时间戳单位是毫秒。41 bits 可以表示的数字多达 `2^41 - 1` ,也就是可以标识 `2^41 - 1` 个毫秒值,换算成年就是表示 69 年的时间。
- 10 bits记录工作机器 id代表的是这个服务最多可以部署在 2^10 台机器上,也就是 1024 台机器。但是 10 bits 里 5 个 bits 代表机房 id5 个 bits 代表机器 id。意思就是最多代表 `2^5` 个机房32 个机房),每个机房里可以代表 `2^5` 个机器32 台机器)。
- 12 bits这个是用来记录同一个毫秒内产生的不同 id12 bits 可以代表的最大正整数是 `2^12 - 1 = 4096` ,也就是说可以用这个 12 bits 代表的数字来区分**同一个毫秒内**的 4096 个不同的 id。
- 12 bits这个是用来记录同一个毫秒内产生的不同 id12 bits 可以代表的最大数字是 `2^12 - 1 = 4095` ,也就是说可以用这个 12 bits 代表的数字来区分**同一个毫秒内**的 4096 个(数字 0 到数字 4095不同的 id。
```sh
0 | 0001100 10100010 10111110 10001001 01011100 00 | 10001 | 1 1001 | 0000 00000000