數(shù)據庫水平拆分和垂直拆分

業(yè)務場景

我們都知道一個數(shù)據庫的連接數(shù)是有上限的,當我們的業(yè)務系統(tǒng)變得繁雜時,如果都存儲在一個數(shù)據庫中,那么勢必會因為數(shù)據庫達到瓶頸;此時我們就需要對數(shù)據庫中表進行拆分,將其分散到多個數(shù)據庫中去。
數(shù)據庫拆分原則:就是指根據系統(tǒng)業(yè)務實際情況,將原本放在一個數(shù)據庫中的數(shù)據分散放到多個數(shù)據庫中去,減少單庫的負載。

舉個例子:比如說現(xiàn)在我們有機票和火車票的業(yè)務,起初由于業(yè)務量小因此都放在一個數(shù)據庫里面得,隨著業(yè)務量的上漲(假如并發(fā)到達3000,MySQL數(shù)據庫最大支持2000),此時數(shù)據庫已經不堪重負;即使你加入緩存組件這些依然解決不了問題(因為你的緩存數(shù)據始終來源于數(shù)據庫)。
那么就可以按照業(yè)務情況進行數(shù)據拆分,將機票業(yè)務的信息和火車票業(yè)務的信息分別放到一個數(shù)據庫中去,這樣就將原來一個庫的壓力分散到2個庫上去了。

垂直拆分

垂直切分:簡單的說就是將數(shù)據庫中的各個表,依據業(yè)務情況將一些表放在一個數(shù)據庫中,一些表放在另外一個數(shù)據庫中,
比如商城這些的數(shù)據庫端按照業(yè)務垂直拆分:按照業(yè)務訂單數(shù)據庫、用戶數(shù)據庫、商品數(shù)據庫等進行拆分。

水平拆分

水平拆分:簡單來說就是將一張表的數(shù)據分別存儲到多個數(shù)據庫中,所以一個庫中只保存一部分數(shù)據;

數(shù)據庫拆分原則

  • 優(yōu)先考慮使用緩存來降低對數(shù)據庫的讀操作。
  • 再考慮讀寫分離,降低數(shù)據庫寫操作。
  • 最后開始數(shù)據拆分,切分模式: 首先垂直(縱向)拆分、再次水平拆分。
  • 首先考慮按照業(yè)務垂直拆分。
  • 再考慮水平拆分:先分庫(設置數(shù)據路由規(guī)則,把數(shù)據分配到不同的庫中);可以通過mycat來處理
  • 最后再考慮分表,單表拆分到數(shù)據1000萬以內。

文章來自:https://blog.vchar.top/dcs/1610333419.html

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容