分片是解決資料庫儲存容量限制的直接途徑。分片包括垂直分片與水平分片兩種方式。
垂直分片
垂直分片又叫縱向分割,即以邏輯表為單位,把原有資料庫切分成多個資料庫。切分後不同的表儲存在不同的資料庫上。
垂直分片與業務架構設計有密切的聯絡。比如從業務領域對系統進行架構優化,分成多個子業務系統,各個子業務系統耦合度較低。子業務系統間以介面方式進行資料通訊和資料交換。
垂直拆分後業務清晰,拆分規則明確,系統之間容易整合與擴充套件。一般用於資料庫上層架構設計。
圖1垂直分片示意圖
水平分片
水平分片又叫橫向分割,即以邏輯表中的資料行記錄為單位,把原有邏輯資料庫切分成多個物理資料庫分片,表資料記錄分布儲存在各個分片上。
水平分片主要用業務架構無法繼續細分,而資料庫中單張表資料量太大,查詢效能下降的場景。通過水平分片,即解決單庫容量問題,同時提高併發查詢效能。
圖2水平分片示意圖
ddm實現了自動水平分片,應用無需關心某個資料該儲存在哪一塊分片上。
對邏輯表水平分片需要依據一定的分片規則,例如乙個訂單跟蹤系統,我們選取訂單號(orderid)作為拆分鍵,分別對「訂單流水表」、「訂單詳情表」以及「物流跟蹤表」進行水平拆分,拆分規則為對鍵值hash後求模,則分片計算規則如下:
h(key(orderid))
= hash(key(orderid))%n
其中,n表示一共有n個資料分片,h(key(orderid))表示該訂單經過訂單號hash並求模後儲存的分片編號。
圖3分片後資料儲存示意圖
分布式資料庫中介軟體DDM的實現原理
隨著資料量不斷增大,傳統的架構模式難以解決業務量不斷增長所帶來的問題,特別是在業務成線性 甚至指數級上公升的情況。此時我們不得不通過水平擴充套件,把資料庫放到不同伺服器上來解決問題,也就是我們說的資料庫中介軟體。作為資料庫中介軟體,分布式資料庫中介軟體ddm將底層資料庫儲存引擎以集群方式管理起來,使...
分布式資料庫中介軟體的實現原理之讀寫分離介紹(三)
資料庫中對計算和快取資源消耗較多的往往是密集或複雜的sql查詢。當系統資源被查詢語句消耗,反過來會影響資料寫入操作,進而導致資料庫整體效能下降,響應緩慢。因此,當資料庫cpu和記憶體資源占用居高不下,且讀寫比例較高時,可以為資料庫新增唯讀例項。新增唯讀例項的作用有以下 將查詢非事務性查詢sql路由到...
分布式資料庫集群中介軟體
我是乙個分布式資料庫集群中介軟體的開發者,已經一年多一點的開發時間了,今天總結點我所知道的一些事情,給有新近來到這個領域的研發人員一點借鑑。生活不易,賺錢不易,離開只是為多賺點錢。學渣 我只是說我所開發過的系統 後面文章會有詳細的分析,這裡只做簡單的梳理。也就是你要研發分布式資料庫集群中介軟體,需要...