分散式資料庫中介軟體的實現原理介紹一:分庫分表

PaaS小魔仙發表於2018-07-03

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



垂直分片

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

垂直分片與業務架構設計有密切的聯絡。比如從業務領域對系統進行架構最佳化,分成多個子業務系統,各個子業務系統耦合度較低。子業務系統間以介面方式進行資料通訊和資料交換。

垂直拆分後業務清晰,拆分規則明確,系統之間容易整合與擴充套件。一般用於資料庫上層架構設計。


垂直分片示意圖 


水平分片

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

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



水平分片示意圖 


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

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

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

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

分片後資料儲存示意圖 


以上就是對分散式資料庫中介軟體的實現原理之分庫分表的介紹,想要了解更多,歡迎點開分散式資料庫中介軟體DDM主頁檢視,也可關注微信公眾號:中介軟體小哥,獲取更多資訊。

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

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543630/viewspace-2157273/,如需轉載,請註明出處,否則將追究法律責任。

相關文章