<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          高頻面試題:自增ID/UUID/雪花算法

          共 621字,需瀏覽 2分鐘

           ·

          2021-04-21 02:29



          面試率極高的一道題,有幾位小伙伴都問到了這個問題,本期做個簡單的分享,供參考




          1

          自增長ID


          特點:

          • 數(shù)值類型,值遞增,由數(shù)據(jù)庫內(nèi)部生成

          優(yōu)點:

          • 是最簡單的方式,開發(fā)簡單,性能優(yōu)秀

          缺點:

          • 不適合分表分庫場景,會出現(xiàn)主鍵沖突,ID重復,這是硬傷

          • 會有N+1次查詢問題,Java代碼想獲取ID,需要再查詢一次


          2

          UUID


          特點:

          • 字符串類型,值沒什么規(guī)律

          優(yōu)點:

          • 適用于分表分庫場景

          • UUID一般由Java代碼生成,Java不需要查詢就能知道ID

          缺點:

          • 性能不如自增



          3

          雪花算法


          特點:

          • 數(shù)值類型,由Twitter提供的分布式ID算法,遞增

          優(yōu)點:

          • 適用于分表分庫場景,就是為這場景而生的

          • 由Java代碼生成,Java不需要查詢就能知道ID

          • 所有需要生成唯一ID的都可用雪花算法,比如登錄token、日志編號等

          缺點:

          • 性能稍稍不如自增

          • 生成的值較長,傳遞到前端number類型容易出現(xiàn)精度丟失,可以轉(zhuǎn)成字符串解決



          4

          總結(jié)


          如果是簡單的小項目,可以考慮用自增ID

          如果是中大型項目,推薦用雪花ID

          至于UUID,因為有雪花算法的存在,所以可以放棄UUID

          但是,小項目我也建議用雪花算法。以后做的項目多了,就不至于一會是自增ID,一會是雪花ID,不至于思維跳躍


          瀏覽 118
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  搞搞网站| 热国产中文网 | 日日插日日干 | 国产精品高潮呻吟久久 | 午夜久久久 |