首页
/
每日頭條
/
生活
/
不重複的id算法
不重複的id算法
更新时间:2026-07-05 19:05:19

生成唯一 ID 的可能方法?

不重複的id算法(生成唯一ID的可能方法)1

創建唯一 id 的不同方法:

自增ID

與 GUID 相比,自增Id 往往占用更少的空間更容易索引。它是一個很好的聚集索引,随着新記錄的有序保存,碎片更少,這更容易連接表。如果我們使用數據庫提供的自動生成的增量 id,那麼查詢和查找數據會變得更快,因為是有序的。但是這種方法可能不是最适合分布式系統,因為 2 個數據庫可以生成相同的 id,存在ID碰撞。

GUID

GUID 的唯一性取決于用于生成它的算法。

GUID 會重複嗎?

GUID 是一個128 位整數(16 個字節),可以在需要唯一标識符的所有計算機和網絡中使用。

GUID 隻是微軟對 UUID 的實現,UUID/GUID 的問題是尺寸比較大,所以索引不好。因此查詢性能會受到影響。

MongoDB 的ObjectId

Objectid 的長度為 12 字節,由以下部分組成:

  • 以秒為單位的 4 字節的時間戳,
  • 一個 3 字節的機器标識符,
  • 一個 2 字節的進程 ID,以及
  • 一個 3 字節的計數器,從一個随機值開始。

與類似 sql 的數據庫的自增ID相比,它的長度仍然更長。

數據庫唯一ID

這種方法使用一個額外的數據庫,其主要目的是創建唯一的 id,調用集中數據庫創建一個唯一的id。這種方法的問題是我們需要一個額外的數據庫,并且性能受限數據庫的性能,

Twitter雪花

Snowflake 是一種算法服務,可大規模生成唯一 ID 号,并提供一些簡單的保證。ID 為 64 位長。

id 由以下部分組成:

  • 時間 — 41 位
  • 配置的機器 id — 10 位 — 最多 1024 台機器
  • 序列号 — 12 位

ID 緊湊而簡短(與 GUID 和 ObjectId 相比),且有序的。

補充:也可以了解百度 美團的分布式ID算法實現,大同小異;同時也可以基于雪花自定義擴展等

結論

在需要唯一ID的情況下,首先要弄清楚的是想要的數據庫架構類型——分布式/分片或單一數據庫。

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
溫庭筠的全部詩句(溫庭筠詩詞雙絕)
溫庭筠的全部詩句(溫庭筠詩詞雙絕)
  【詩九首】        瑤瑟怨   冰簟銀床夢不成,碧天如水夜雲輕。   雁聲遠過潇湘去,十二樓中月自明。   贈少年   江海相逢客恨多,秋風葉下洞庭波。   酒酣夜别淮陰市,月照高樓一曲歌。   鹹陽值雨   鹹陽橋上雨如懸,萬點空濛隔釣船。   還似洞庭春水色,曉雲将入嶽陽天。   商山早行   晨起動征铎,客行悲故鄉。   雞聲茅店月,人迹闆橋...
2026-07-05
賈乃亮與李小璐的結婚紀念日(賈乃亮李小璐破鏡重圓)
賈乃亮與李小璐的結婚紀念日(賈乃亮李小璐破鏡重圓)
  真是年底要沖kpi了哈,他倆又被傳要複婚了?         其實這樣的言論,不是第一天出現了。   早在今年四月,   女方的評論區,      男方的評論區,      當時就有不少人挺看好兩人破鏡重圓。   之後,也被扒出一些情侶才有的巧合。   同一行程▽   4月賈乃亮到海南過生日,她被發現帶着甜馨一同前往。      #差不多同一時間,兩人也...
2026-07-05
我想穿上最美的婚紗嫁給最愛的你(你就是世上最美的新娘)
我想穿上最美的婚紗嫁給最愛的你(你就是世上最美的新娘)
  此篇文章為微信公衆号嗚莎花園以及多肉時光授權發布,作者靜靜。       靜靜的物種日志    第8篇 原創   鈴蘭生幽谷,瑩潔勝美玉。今天,我想為你講述的,是關于鈴蘭的故事。   如果你喜愛的植物很多,就總能遇到叫不上植物名字的小尴尬。然而,鈴蘭從來沒讓養花人尴尬過,因為,它總是讓人瞬間一見鐘情,随後讓人一生念念不忘。   每年的五月六月,正是鈴蘭花...
2026-07-05
古人說父親怎麼叫(古人把父親叫爹)
古人說父親怎麼叫(古人把父親叫爹)
  #頭條創作挑戰賽#   文·段宏剛   國學大師陳寅格說過這樣一句話:凡一字之釋義皆為一部文化史。   這句話對任何漢字都适用,生活中常見的“爸”、“爹”等字,同樣包含着豐富多彩的人文内涵。   “爸”和“爹”是書面語“父親”對應的口語,古人通常把父親叫“爹”或者“爹爹”,現代人則稱呼“爸”或者“爸爸”。西北人常用“大”來稱呼父親,在年齡較大的農村人裡邊...
2026-07-05
卡梅隆阿諾施瓦辛格(卡梅隆聯手阿諾)
卡梅隆阿諾施瓦辛格(卡梅隆聯手阿諾)
  楚天都市報10月24日訊(記者戎钰)北京時間10月23日晚,經典科幻動作電影《終結者》系列最新篇章《終結者:黑暗命運》在京舉行“重回戰場”中國首映發布會。導演蒂姆·米勒、主演阿諾·施瓦辛格、琳達·漢密爾頓齊齊亮相,解密制作曆程。憑借《流浪地球》助力中國科幻電影走進新世代的中國導演郭帆也出席活動,向偶像阿諾緻敬。      作為《終結者》系列的締造者之一、...
2026-07-05
Copyright 2023-2026 - www.tftnews.com All Rights Reserved