MySQL垂直拆分和水平拆分的優缺點和共同點總結

chenfeng發表於2018-06-12
資料的拆分(Sharding)根據其拆分分規則的型別,可以分為兩種拆分模式。一種是按照不同的表(或者Schema)來切分到不同的資料庫(主機)之上,這種切可以稱之為資料的垂直(縱向)拆分;
另外一種則是根據表中的資料的邏輯關係,將同一個表中的資料按照某種條件拆分到多臺資料庫(主機)上面,這種切分稱之為資料的水平(橫向)拆分。

垂直拆分的優點:
拆分後業務清晰,拆分規則明確
系統之間進行整合或擴充套件很容易
按照成本、應用的等級、應用的型別等將表放到不同的機器上便於管理
方便實現動靜分離,冷熱分離的資料庫表的設計模式
資料維護相對簡單


垂直拆分的缺點:
部分業務表無法Join,只能透過介面方式解決,提高了系統的複雜度
受每種業務的不同限制,存在單庫效能瓶頸,不易進行資料擴充套件和提升效能
事務處理複雜


水平拆分的優點:
單庫單表的資料能保持在一定的量級,有助於效能的提高。
切分的表結構相同,應用層改造較少,只需要增加路由規則即可。
提高了系統的穩定性和負載能力。
水平拆分的缺點:
切分後,資料是分散的,跨庫join操作難和效能差
拆分規則難以抽象
分片事務的一致性難以解決
資料擴容的難度和維護量極大


綜上所述,垂直拆分和水平拆分的共同點為:
存在分散式事務的問題
存在跨節點Join問題
存在跨節點合併排序和分頁問題
存在多資料來源管理的問題

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

相關文章