您好,登錄后才能下訂單哦!
MySQL中怎么實現垂直分庫,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
水平分表
顧名思義,水平分表就是把表中的數據進行了水平切割,意味著按照行進行切割,也就是說不同行的數據被切割后可能在不同的表中。
如圖所示,根據水平切割之后,id為1和2的數據行會在一個表中,id為3,4的數據行會在一個表中,而id為5的數據會在一個表中,這就是水平分表。
垂直分表
也是一樣,它的意思是把數據表進行了垂直分割,原來表中的列被分到了不同的表中。
如圖所示,desc字段被切割后,會分配到另一張表中。 那么為什么要垂直分表,或者說什么情況下適合垂直分表? 答案就是垂直分表的目的就是將表中的含有大量數據的字段,比如text字段,blob字段從表中分離出去,這樣可以大大減輕原表的數據壓力,而且這些字段的訪問量沒有其它字段的訪問頻率高,所以這么處理是合適的。
水平分庫
如果你理解了上面的水平分表和垂直分表,那么數據庫的分割你也會很好理解。 顧名思義,水平分庫相當于把數據庫水平切割,原來一個表中的數據可能會分配到不同的數據庫中,這就是水平分庫。
如圖所示,table1,table2,table3,table4中的數據都會被水平切割一刀,這樣一個表中的數據可能就會被分配到不同的數據庫中。
垂直分庫
垂直分庫,就是將數據庫垂直分割,這回一個表中的數據不會被分配到不同數據庫,但是不同表可能會分配到不同的數據庫。
如圖所示,經過垂直分割table1,table2會分到一個數據庫db1,而table3,table4會分配到另一個數據庫db2。
什么時候垂直分庫呢?答案是根據業務邏輯進行分割。比如我們可以把用戶表和用戶相關的表分配到用戶數據庫中,而把商品表和商品相關的數據分配到商品數據庫中。
看完上述內容,你們掌握MySQL中怎么實現垂直分庫的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。