MySQL垂直拆分和水平拆分的優缺點和共同點總結
資料的拆分(Sharding)根據其拆分分規則的型別,可以分為兩種拆分模式。一種是按照不同的表(或者Schema)來切分到不同的資料庫(主機)之上,這種切可以稱之為資料的垂直(縱向)拆分;
另外一種則是根據表中的資料的邏輯關係,將同一個表中的資料按照某種條件拆分到多臺資料庫(主機)上面,這種切分稱之為資料的水平(橫向)拆分。
垂直拆分的優點:
拆分後業務清晰,拆分規則明確
系統之間進行整合或擴充套件很容易
按照成本、應用的等級、應用的型別等將表放到不同的機器上便於管理
方便實現動靜分離,冷熱分離的資料庫表的設計模式
資料維護相對簡單
垂直拆分的缺點:
部分業務表無法Join,只能透過介面方式解決,提高了系統的複雜度
受每種業務的不同限制,存在單庫效能瓶頸,不易進行資料擴充套件和提升效能
事務處理複雜
水平拆分的優點:
單庫單表的資料能保持在一定的量級,有助於效能的提高。
切分的表結構相同,應用層改造較少,只需要增加路由規則即可。
提高了系統的穩定性和負載能力。
水平拆分的缺點:
切分後,資料是分散的,跨庫join操作難和效能差
拆分規則難以抽象
分片事務的一致性難以解決
資料擴容的難度和維護量極大
綜上所述,垂直拆分和水平拆分的共同點為:
存在分散式事務的問題
存在跨節點Join問題
存在跨節點合併排序和分頁問題
存在多資料來源管理的問題
另外一種則是根據表中的資料的邏輯關係,將同一個表中的資料按照某種條件拆分到多臺資料庫(主機)上面,這種切分稱之為資料的水平(橫向)拆分。
垂直拆分的優點:
拆分後業務清晰,拆分規則明確
系統之間進行整合或擴充套件很容易
按照成本、應用的等級、應用的型別等將表放到不同的機器上便於管理
方便實現動靜分離,冷熱分離的資料庫表的設計模式
資料維護相對簡單
垂直拆分的缺點:
部分業務表無法Join,只能透過介面方式解決,提高了系統的複雜度
受每種業務的不同限制,存在單庫效能瓶頸,不易進行資料擴充套件和提升效能
事務處理複雜
水平拆分的優點:
單庫單表的資料能保持在一定的量級,有助於效能的提高。
切分的表結構相同,應用層改造較少,只需要增加路由規則即可。
提高了系統的穩定性和負載能力。
水平拆分的缺點:
切分後,資料是分散的,跨庫join操作難和效能差
拆分規則難以抽象
分片事務的一致性難以解決
資料擴容的難度和維護量極大
綜上所述,垂直拆分和水平拆分的共同點為:
存在分散式事務的問題
存在跨節點Join問題
存在跨節點合併排序和分頁問題
存在多資料來源管理的問題
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2156042/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料庫優化-水平拆分 垂直拆分資料庫優化
- MySQL垂直切分和水平切分概念和優缺點介紹MySql
- MySQL專題:資料庫垂直、水平拆分MySql資料庫
- mysql表水平拆分和分割槽分表MySql
- mysql和Oracle的特點,優缺點MySqlOracle
- 四大主流PHP框架的優點和缺點總結PHP框架
- AWS RDS MySQL和MariaDB Galera Cluster的優缺點比較總結MySql
- TokuDB優缺點總結
- 繼承的優點和缺點繼承
- MySQL NDB Cluster,Galera Cluster和Percona XtraDB Cluster優缺點總結MySql
- Solr與Elasticsearch的優缺點比較總結和歸納SolrElasticsearch
- iframe有哪些優點和缺點?
- MySQL 8 大叢集架構的優缺點總結MySql架構
- MVP 與 MVVM 優缺點總結MVPMVVM
- 【Java面試】請說一下Mysql索引的優點和缺點?Java面試MySql索引
- Jtti:mysql主從同步的優點和缺點是什麼JttiMySql主從同步
- Java單例模式:缺點和優點Java單例模式
- MySQL索引的優缺點MySql索引
- 和程式設計師約會的優點和缺點程式設計師
- MySQL分割槽表的分割槽原理和優缺點MySql
- HTTP和RPC的優缺點HTTPRPC
- MHA工具的優缺點歸納總結
- Oracle幾種表的優缺點總結Oracle
- 資料庫索引的作用和優點缺點資料庫索引
- MySQL NDB Cluster和Galera Cluster的主要特性和優缺點介紹MySql
- GAN原理,優缺點、應用總結
- MySQL InnoDB獨立表空間模式的優點和缺點介紹MySql模式
- MySQL觸發器的使用和優缺點介紹ZGMHMySql觸發器
- 對單體系統優缺點評判到位:拆分Shopify單體工程的經驗分享
- MyCat分片:水平拆分例項解析和程式碼實現!
- mixins和元件的區別和優缺點元件
- 執行緒和程式的優缺點執行緒
- MySQL innoDB獨立表空間和共享表空間的優點和缺點介紹MySql
- rem佈局原理和優缺點REM
- svn和git版本管理優缺點Git
- ERP系統有哪些優點和缺點?
- MySQL垂直和水平切分-轉載整理MySql
- python多執行緒的優缺點總結Python執行緒