分布式數據庫中間件的實現原理介紹一:分庫分表


分片是解決數據庫存儲容量限制的直接途徑。分片包括垂直分片與水平分片兩種方式。



垂直分片

垂直分片又叫縱向分割,即以邏輯表為單位,把原有數據庫切分成多個數據庫。切分后不同的表存儲在不同的數據庫上。

垂直分片與業務架構設計有密切的聯系。比如從業務領域對系統進行架構優化,分成多個子業務系統,各個子業務系統耦合度較低。子業務系統間以接口方式進行數據通信和數據交換。

垂直拆分后業務清晰,拆分規則明確,系統之間容易整合與擴展。一般用於數據庫上層架構設計。

 

圖1 垂直分片示意圖 

 

水平分片

水平分片又叫橫向分割,即以邏輯表中的數據行記錄為單位,把原有邏輯數據庫切分成多個物理數據庫分片,表數據記錄分布存儲在各個分片上。

水平分片主要用業務架構無法繼續細分,而數據庫中單張表數據量太大,查詢性能下降的場景。通過水平分片,即解決單庫容量問題,同時提高並發查詢性能。


圖2 水平分片示意圖 



DDM實現了自動水平分片,應用無需關心某個數據該存儲在哪一塊分片上。

對邏輯表水平分片需要依據一定的分片規則,例如一個訂單跟蹤系統,我們選取訂單號(OrderId)作為拆分鍵,分別對“訂單流水表”、“訂單詳情表”以及“物流跟蹤表”進行水平拆分,拆分規則為對鍵值Hash后求模,則分片計算規則如下:

H(Key(OrderId)) = Hash(Key(OrderId))%N

其中,N表示一共有N個數據分片,H(Key(OrderId))表示該訂單經過訂單號Hash並求模后存儲的分片編號。

 

圖3 分片后數據存儲示意圖 



以上就是對分布式數據庫中間件的實現原理之分庫分表的介紹,想要了解更多,歡迎點開分布式數據庫中間件DDM主頁查看,也可關注微信公眾號:中間件小哥,獲取更多資訊。

推薦活動:5分鍾 玩轉微服務

https://activity.huaweicloud.com/cse/index.html?dfk


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM