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