通過某種特定的條件,將存放在同乙個資料庫中的資料分散存放到多個資料庫上面,以達到分散單台裝置負載的效果
資料切分可以提高系統的總體可用性,單台裝置宕機之後,只有總體資料的某部分不可用,而不是所有的資料
按照不同的表(或者 schema)來切分到不同的資料庫(主機)之上
具體就是:
需要架構設計良好,功能模組對應的表之間互動點少,功能模組耦合度低
然後根據功能模組進行切分,不同模組存放於不同資料庫主機中
優點
缺點
根據表中的資料的邏輯關係,將同乙個表中的資料按照某種條件拆分到多台資料庫(主機)上面
水平切分主要是將某個訪問極其平凡的表再按照某個欄位的某種規則來分散到多個表之中,每個表中包含一部分資料
優點
缺點
切分過程
效能瓶頸最初時,進行資料垂直拆分,因為成本最小;
穩定一段時間後,垂直拆分的資料庫集群又遇到效能瓶頸;
不能繼續細分模組垂直切分,因為該問題會繼續出現,而且架構複雜度加劇;
在此基礎,進行水平切分,該階段水平切分規則隨著垂直切分已經變簡單;
優點
缺點
通過資料切分技術將乙個大的 mysql server 切分成多個小的 mysql server,既解決了寫入效能瓶頸問題,同時也再一次提公升了整個資料庫集群的擴充套件性。
垂直切分規則簡單,實施方便,適合前期使用。在垂直切分的基礎上,水平切分的規則複雜得到簡化,適合後期使用。這些都可以結合具體業務場景靈活使用。
不論是通過垂直切分,還是水平切分,都能夠讓系統遇到瓶頸的可能性更小。
mysql水平切分
mysql水平切分 在大中型專案中,在資料庫設計的時候,考慮到資料庫最大承受資料量,通常會把資料庫或者資料表水平切分,以降低單個庫,單個表的壓力。我這裡介紹兩個我們專案中常用的資料表切分方法。當然這些方法都是在程式中使用一定的技巧來路由到具體的表的。首先我們要確認根據什麼來水平切分?在我們的系統 s...
資料切分 MySql表分割槽概述
定義 表的分割槽指根據可以設定為任意大小的規則,跨檔案系統分配單個表的多個部分。實際上,表的不同部分在不同的位置被儲存為單獨的表。使用者所選擇的 實現資料分割的規則被稱為分割槽函式,這在mysql中它可以是模數,或者是簡單的匹配乙個連續的數值區間或數值列表,或者是乙個內部hash函式,或乙個線性ha...
資料切分 MySql表分割槽概述
定義 表的分割槽指根據可以設定為任意大小的規則,跨檔案系統分配單個表的多個部分。實際上,表的不同部分在不同的位置被儲存為單獨的表。使用者所選擇的 實現資料分割的規則被稱為分割槽函式,這在mysql中它可以是模數,或者是簡單的匹配乙個連續的數值區間或數值列表,或者是乙個內部hash函式,或乙個線性ha...