中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數據庫拆分的方式有哪幾種

發布時間:2020-07-31 10:13:10 來源:億速云 閱讀:312 作者:Leah 欄目:互聯網科技

數據庫拆分的方式有哪幾種?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

數據庫拆分有:1、按功能劃分【垂直切分】,將不同功能相關的表放到不同的數據庫中,這樣做的好處是非常直觀;2、按表中某一字段值的范圍劃分【水平切分】,當伴隨著某一個表的數據量越來越大,以至于不能承受的時候,就需要對它進行進一步的切分。

數據庫做拆分的幾種方式:

1.按功能劃分(垂直切分)

將不同功能相關的表放到不同的數據庫中,這樣做的好處是非常直觀。但當某一部分的功能其數據量或性能要求超出了可控的范圍,就需要繼續對其進行深入的再切分。

2.按表中某一字段值的范圍劃分(水平切分)

當伴隨著某一個表的數據量越來越大,以至于不能承受的時候,就需要對它進行進一步的切分。一種選擇是根據key 的范圍來做切分,譬如ID 為 1-10000的放到A上,ID 為10000~20000的放到B。這樣的擴展就是可預見的。另一種是根據某一字段值來劃分,譬如根據用戶名的首字母,如果是A-D,就屬于A,E-H就屬于B。這樣做也存在不均衡性,當某個范圍超出了單點所能承受的范圍就需要繼續切分。還有按日期切分等等。

優點:單表大小可控,天然水平擴展

缺點:無法解決集中寫入瓶頸的問題。

3.基于hash的切分

一般采用mod來切分,一開始確定切分數據庫的個數,通過hash取模來決定使用哪臺。這種方法能夠平均地來分配數據,但是伴隨著數據量的增大,需要進行擴展的時候,這種方式無法做到在線擴容。每增加節點的時候,就需要對hash 算法重新運算。

所以采用這種方法推薦采用mod 2^n這種一致性哈希

以點評統一訂單庫為例,分庫分表的方案是32*32的,即通過userId后四位mod 32分到32個庫中,同時再將userId后四位div 32 mod 32將每個庫分為32個表,共計分為1024張表。其線上部署情況為8個集群(主從),每個集群4個庫

4.基于路由表的切分

前面的幾種方式都是根據應用的數據來決定操作的,基于路由表的切分是一種更加松散的方法。它單獨維護一張路由表,根據用戶的某一屬性來查找路由表決定使用哪個數據庫,這種方式是一種更加通用的方案。

優點:id和庫的mapping算法可以隨意更改

缺點:可能引入額外的單點

看完上述內容,你們掌握數據庫拆分的方式有哪幾種的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

醴陵市| 凤台县| 扎兰屯市| 呼玛县| 滨州市| 建德市| 盐津县| 沭阳县| 体育| 德清县| 博罗县| 澎湖县| 陆良县| 鄂尔多斯市| 双流县| 家居| 琼中| 绥化市| 阳朔县| 平度市| 水城县| 华池县| 古蔺县| 射洪县| 蚌埠市| 永济市| 忻城县| 邹城市| 通州市| 庄浪县| 泊头市| 宜川县| 龙海市| 德江县| 白河县| 确山县| 北宁市| 江津市| 商南县| 佛学| 布尔津县|