<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
搞一個資料庫,什麼也不幹,就用於生成主鍵。
你的系統裡每次得到一個 id,都需要往那個專門生成主鍵的資料庫中通過插入獲取一個自增的ID,拿到這個 id 之後再往對應的分庫分表裡去寫入。
優點:方便簡單。
缺點:單庫生成自增 id,要是高並行的話,就會有瓶頸的;如果你硬是要改進一下,那麼就專門開一個服務出來,這個服務每次就拿到當前 id 最大值,然後自己遞增幾個 id,一次性返回一批 id,然後再把當前最大 id 值修改成遞增幾個 id 之後的一個值;但是無論如何都是基於單個資料庫。
適合的場景:系統並行不大,只是因為資料量大的原因而去做的分庫分表的話,可以採用這種方式。
可以通過設定資料庫 sequence 或者表的自增欄位步長來進行水平伸縮。
比如說,現在有 8 個服務節點,每個服務節點使用一個 sequence 功能來產生 ID,每個 sequence 的起始 ID 不同,並且依次遞增,步長都是8
適合的場景:在使用者防止產生的 ID 重複時,這種方案實現起來比較簡單,也能達到效能目標。但是服務節點固定,步長也固定,將來如果還要增加服務節點,就不好搞了。
優點:本地生成,不需要基於資料庫;
缺點:UUID 太長了、佔用空間大;作為主鍵效能太差:UUID 不具有有序性,會導致 B+ 樹索引在寫的時候有過多的隨機寫操作(連續的 ID 可以產生部分順序寫),還有,由於在寫的時候不能產生有順序的 append 操作,而需要進行 insert 操作,導致頻繁的進行頁分裂,效能下降明顯。
適合的場景:如果你是要隨機生成個什麼檔名、編號之類的,你可以用 UUID,但是作為InnoDB表的主鍵是不能用 UUID 的。
UUID.randomUUID().toString().replace(「-」, 「」) -> sfsdf23423rr234sfdaf
適合的場景:一般如果用這個方案,是將當前時間戳跟很多其他的業務欄位拼接起來,作為一個 id,如果業務上你覺得可以接受,那麼也是可以的。你可以將別的業務欄位值跟當前時間拼接起來,組成一個全域性唯一的編號。
snowflake 演演算法是 twitter 開源的分散式 id 生成演演算法,採用 Scala 語言實現,是把一個 64 位的 long 型的 id,1 個 bit 是不用的,用其中的 41 bit 作為時間戳(毫秒數),用 10 bit 作為工作機器 id,12 bit 作為序列號。
2^41 - 1
,也就是可以標識 2^41 - 1
個毫秒值,換算成年就是表示69年的時間。2^5
個機房(32個機房),每個機房裡可以代表 2^5
個機器(32臺機器)。2^12 - 1 = 4096
,也就是說可以用這個 12 bit 代表的數位來區分同一個毫秒內的 4096 個不同的 id。0 | 0001100 10100010 10111110 10001001 01011100 00 | 10001 | 1 1001 | 0000 00000000
到此這篇關於Mysql分庫分表之後主鍵處理的幾種方法的文章就介紹到這了,更多相關Mysql分庫分表主鍵內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45