欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報邀請碼778899分享:分布式 id

柚子快報邀請碼778899分享:分布式 id

http://yzkb.51969.com/

分布式 id

分布式 id 生成策略雪花算法UUID 與自增 ID 的優(yōu)缺點

分布式 id 需要處理的問題主要是同一時間在多臺機(jī)器中保證生成的 id 唯一,為了這么做我們可以這么做:

分布式 id 生成策略

先說幾個已經(jīng)被淘汰的策略引出分布式 id 的問題

1,UUID:UUID 全稱為通用唯一識別碼,是由一組32位數(shù)的16進(jìn)制數(shù)字所構(gòu)成,是故UUID理論上的總數(shù)為16^32 = 2^128,約等于3.4 x 10^38。也就是說若每納秒產(chǎn)生1兆個 UUID,要花100億年才會將所有 UUID 用完,UUID 隨機(jī)并且唯一,在單一的數(shù)據(jù)庫中就不適合作為主鍵,因為生成的字符串太長不符合索引優(yōu)化規(guī)則

2,自增 ID:不管是數(shù)據(jù)庫自增還是MP自增,分布式數(shù)據(jù)庫中總是要存放一定范圍的數(shù)據(jù),使用自增策略可能會導(dǎo)致不同數(shù)據(jù)庫存放同一id的問題

以下生成分布式 id 的方法比較靠譜

3,redis 生成:利用 redis 的 incr 命令生成 id,設(shè)置起始值和步長,步長值是配置了多少臺 redis,這種方法同樣適應(yīng)與數(shù)據(jù)庫多主模式

4,雪花算法:生成一個64bit 的 id,也就是 long 類型的數(shù)字,長度適中并且方便快捷

雪花算法

雪花算法是一個比較常見的生成分布式 id 的方式,它會生成一個 8 字節(jié)的數(shù)據(jù),通過確保每段數(shù)據(jù)在空間與時間上唯一來確定最終數(shù)據(jù)的唯一

64bit 中,起始 1bit 為0,閑置不用

接下來 41bit 代表時間戳,這個是毫秒級的時間,存放時間戳的差值(當(dāng)前時間-固定的開始時間),41位的時間戳可以使用69年 10bit 存放機(jī)器 id,前 5bit 代表機(jī)器位置(配置在不同地區(qū)的機(jī)器有不同 id),后 5bit 代表機(jī)器 id (一個地區(qū)會配置集群) 最后的 12bit 代表流水號,一個毫秒時間內(nèi)最多可以處理4096個 id

UUID 與自增 ID 的優(yōu)缺點

對于所有的 UUID 它可以保證在空間和時間上的唯一性。它是通過 MAC 地址,時間戳,隨機(jī)數(shù)等數(shù)據(jù)來保證生成 ID 的唯一性,有著固定的大小(128bit)。因此它可以用于分布式的生產(chǎn)環(huán)境,以支持更高的并發(fā)

它的缺點是更占用空間,并且存放的是 varchar 類型,在通過 ID 查找的時候的效率很低

無序,隨機(jī)生成與插入,聚集索引頻繁頁分裂,大量隨機(jī) IO,內(nèi)存碎片化,特別是隨著數(shù)據(jù)量越來越多,插入性能會越差

因此在并發(fā)數(shù)不是很高的情況下使用自增 ID 是不錯的方法,主鍵頁以近乎順序的方式填寫,提升了頁的利用率。索引更加緊湊,性能更好查詢時數(shù)據(jù)訪問更快,連續(xù)增長的值能避免 b+ 樹頻繁合并和分裂

柚子快報邀請碼778899分享:分布式 id

http://yzkb.51969.com/

參考閱讀

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18794511.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄