成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數(shù)據(jù)庫分庫分表后,帶來的這個難題,如何解決?

數(shù)據(jù)庫 MySQL
在此之前我們介紹了數(shù)據(jù)庫的分庫分表問題,分庫分表可以給我們帶來非常好的擴展性與性能上的提升,但也隨之帶來一些問題,例如數(shù)據(jù)的主鍵ID分配問題。

 在此之前我們介紹了數(shù)據(jù)庫的分庫分表問題,分庫分表可以給我們帶來非常好的擴展性與性能上的提升,但也隨之帶來一些問題,例如數(shù)據(jù)的主鍵ID分配問題。我們以Mysql為例,通常我們使用的是數(shù)據(jù)庫的自增主鍵,我們在分表的時候也盡量保證業(yè)務(wù)上不需要跨表查詢數(shù)據(jù),但是難免會遇到這樣的場景,這個時候我們就會面臨這樣一個問題,如果兩張表上面的主鍵ID重復(fù),那么業(yè)務(wù)就會出錯,帶來不可估量的后果。

[[311996]]

那么我們?nèi)绾谓鉀Q主鍵唯一的問題呢?這里我們介紹幾種常見的方法,以及他們的優(yōu)缺點。

方法一

首先我們可以利用隨機方法生成主鍵,通常,只要隨機算法合理,適當?shù)丶狱c鹽,生成的64位的主鍵ID,重復(fù)的概率極低(幾乎可以不用考慮碰撞),這種方法的優(yōu)點是實現(xiàn)非常簡單,但是存在什么問題呢?首先是ID的長度會非常的長,我們都知道,在數(shù)據(jù)庫中,主鍵ID過長會降低索引的性能。其次,隨機生成主鍵ID是無序的,這就意味著插入新的數(shù)據(jù)的時候,都需要插入索引,我們都知道Mysql的索引是B+樹,B+樹如果不停地插入無序的數(shù)據(jù),性能會大大降低,造成的結(jié)果就是插入性能降低。聰明的同學可能已經(jīng)想到了,我們也可以生成有序的隨機數(shù),例如使用Twitter公司的SnowFlake,可以一定程度上避免B+樹插入帶來的影響。

方法二

第二種方法,我們還是可以利用數(shù)據(jù)庫的主鍵遞增特性。在Mysql數(shù)據(jù)庫中,是可以設(shè)置主鍵遞增的步長,也就是我們不必在1,2,3這樣遞增,假如我們設(shè)置步長為10,開始為10,那就是10,20,30了。假如我們分了10張表,那么我們可以讓每個表的起始分別是0到9,然后步長設(shè)置為10,這樣子就可以保證十張表里面的數(shù)據(jù)不會重復(fù)了。這種方法的優(yōu)點同樣非常簡單,只需要簡單的配置而已,那么它存在什么問題呢?首先是擴展非常的不方便,如果我們想要把分表從10改成20呢?會給我們帶來一定的麻煩。

方法三

第三種方法,我們可以維護一個ID分配器,我們可以使用Redis等相關(guān)組件,將提前分配好的ID放在Redis的隊列當中,每次業(yè)務(wù)要插入的時候,先從預(yù)分配的隊列中取一個元素出來,然后再插入數(shù)據(jù)庫當中。當然這種做法需要一定的開發(fā)量,可以相對保證主鍵id的順序,擴展也相對的簡單。

總結(jié)

那么哪一種方法好呢?在計算機程序設(shè)計中,沒有絕對的好也沒有絕對地差,只要能夠貼近業(yè)務(wù),保證系統(tǒng)平穩(wěn)運行,又不需要較大的開發(fā)與維護成本,那就是好方法,需要根據(jù)自己的業(yè)務(wù)與現(xiàn)在的開發(fā)運維經(jīng)驗進行選擇。歡迎大家關(guān)注我,共同學習,共同進步。大家的支持是我繼續(xù)嘮嗑的動力。

 

責任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2022-06-15 07:32:24

數(shù)據(jù)庫分庫分表

2024-08-02 15:47:28

數(shù)據(jù)庫分庫分表

2019-01-16 14:00:54

數(shù)據(jù)庫分庫分表

2018-06-01 14:00:00

數(shù)據(jù)庫MySQL分庫分表

2022-12-05 07:51:24

數(shù)據(jù)庫分庫分表讀寫分離

2019-03-06 14:42:01

數(shù)據(jù)庫分庫分表

2021-04-01 05:40:53

分庫分表數(shù)據(jù)庫MySQL

2022-05-25 08:06:37

MySQL分庫分表

2024-12-04 13:02:34

數(shù)據(jù)庫分庫分表

2019-01-29 15:25:11

阿里巴巴數(shù)據(jù)庫分庫分表

2024-11-22 15:32:19

2021-07-28 15:44:52

Java開發(fā)數(shù)據(jù)庫

2019-07-31 09:27:23

數(shù)據(jù)庫MySQLSQL

2023-11-03 14:50:14

2013-07-17 11:12:00

分布式數(shù)據(jù)庫分布式系統(tǒng)

2022-06-04 15:28:42

微服務(wù)架構(gòu)編程語言

2019-08-16 10:19:01

NewSQL數(shù)據(jù)庫分庫分表

2018-05-29 08:39:26

DBA數(shù)據(jù)庫案例

2018-08-14 18:00:14

數(shù)據(jù)庫分庫分表表拆分

2019-01-30 09:53:58

數(shù)據(jù)庫性能分庫分表
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 日本一区二区三区四区 | 欧美日韩不卡在线 | 欧美黄色一区 | 视频一区中文字幕 | 91中文在线观看 | 日韩欧美国产综合 | 久久精品一 | 成人免费一区二区三区牛牛 | 精品国产欧美一区二区三区成人 | 国产99视频精品免费视频7 | xnxx 日本免费| 欧美另类视频在线 | 国产电影一区二区 | 欧美午夜精品 | 一区二区视频 | 天天色图| 在线播放亚洲 | 色婷婷久久久亚洲一区二区三区 | 日韩久久久久久 | 国产视频二区 | 91在线精品视频 | 久久久久成人精品免费播放动漫 | 国产成人精品网站 | 国产亚洲一区二区三区在线 | 伊人久久综合 | 日韩爱爱网 | 精品国产乱码久久久久久中文 | 欧美日韩综合视频 | 日韩一区二区在线视频 | 欧美日韩一本 | 日韩精品一区二区三区 | 精品久久久久久久久久久久 | 亚洲导航深夜福利涩涩屋 | 国产免费一区二区三区免费视频 | 成人日韩精品 | 五月激情综合 | 日韩在线播放av | 欧美日韩一区在线 | 中文字幕视频在线 | 亚洲视频免费一区 | 麻豆国产精品777777在线 |