課程
/數(shù)據(jù)庫
/MySQL
/數(shù)據(jù)庫設(shè)計(jì)那些事
能不能講個(gè)具體怎么個(gè)橫向和縱向拆分!
2018-02-01
源自:數(shù)據(jù)庫設(shè)計(jì)那些事 4-5
正在回答
數(shù)據(jù)的切分(Sharding)根據(jù)其切分規(guī)則的類型,可以分為兩種切分模式。一種是按照不同的表(或者Schema)來切分到不同的數(shù)據(jù)庫(主機(jī))之上,這種切可以稱之為數(shù)據(jù)的垂直(縱向)切分;另外一種則是根據(jù)表中的數(shù)據(jù)的邏輯關(guān)系,將同一個(gè)表中的
數(shù)據(jù)按照某種條件拆分到多臺(tái)數(shù)據(jù)庫(主機(jī))上面,這種切分稱之為數(shù)據(jù)的水平(橫向)切分。
垂直切分
一個(gè)數(shù)據(jù)庫由很多表的構(gòu)成,每個(gè)表對(duì)應(yīng)著不同的業(yè)務(wù),垂直切分是指按照業(yè)務(wù)將表進(jìn)行分類,分布到不同的數(shù)據(jù)庫上面,這樣也就將數(shù)據(jù)或者說壓力分擔(dān)到不同的庫上面, 如下圖:
垂直切分的優(yōu)缺點(diǎn)介紹:
優(yōu)點(diǎn):
拆分后業(yè)務(wù)清晰,拆分規(guī)則明確。
系統(tǒng)之間整合或擴(kuò)展容易。
數(shù)據(jù)維護(hù)簡單。
缺點(diǎn):
部分業(yè)務(wù)表無法join,只能通過接口方式解決,提高了系統(tǒng)復(fù)雜度。
受每種業(yè)務(wù)不同的限制存在單庫性能瓶頸,不易數(shù)據(jù)擴(kuò)展跟性能提高。
事務(wù)處理復(fù)雜。
由于垂直切分是按照業(yè)務(wù)的分類將表分散到不同的庫,所以有些業(yè)務(wù)表會(huì)過于龐大,存在單庫讀寫與存儲(chǔ)瓶頸,所以就需要水平
拆分來做解決。
水平切分
相對(duì)于垂直拆分,水平拆分不是將表做分類,而是按照某個(gè)字段的某種規(guī)則來分散到多個(gè)庫之中,每個(gè)表中包含一部分?jǐn)?shù)據(jù)。簡單來說,我們可以將數(shù)據(jù)的水平切分理解為是按照數(shù)據(jù)行的切分,就是將表中的某些行切分到一個(gè)數(shù)據(jù)庫,而另外的某些行又切
分到其他的數(shù)據(jù)庫中,如下圖:
水平切分的優(yōu)缺點(diǎn)介紹:
拆分規(guī)則抽象好,join操作基本可以數(shù)據(jù)庫做。
不存在單庫大數(shù)據(jù),高并發(fā)的性能瓶頸。
應(yīng)用端改造較少。
提高了系統(tǒng)的穩(wěn)定性跟負(fù)載能力。
拆分規(guī)則難以抽象。
分片事務(wù)一致性難以解決。
數(shù)據(jù)多次擴(kuò)展難度跟維護(hù)量極大。
跨庫join性能較差。
垂直切分和水平切分共同的特點(diǎn)和缺點(diǎn)有:
引入分布式事務(wù)的問題。
跨節(jié)點(diǎn)Join的問題。
跨節(jié)點(diǎn)合并排序分頁問題。
多數(shù)據(jù)源管理問題。
舉報(bào)
本教程從數(shù)據(jù)庫設(shè)計(jì)基本理論入手,教你設(shè)計(jì)簡潔高效數(shù)據(jù)庫結(jié)構(gòu)
3 回答怎么進(jìn)行表的水平拆分和垂直拆分
2 回答數(shù)據(jù)庫案例分析
1 回答如何分庫分表?
3 回答拆分后飲料一廠有倆聯(lián)系人,會(huì)影響正常使用吧?若把商品id也加進(jìn)拆分后的第二章表中,貌似是數(shù)據(jù)冗余。剛接觸數(shù)據(jù)庫,很菜求指點(diǎn)
1 回答數(shù)據(jù)庫項(xiàng)目表的存儲(chǔ)過程
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號(hào)-11 京公網(wǎng)安備11010802030151號(hào)
購課補(bǔ)貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動(dòng)學(xué)習(xí)伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號(hào)
2018-02-03
數(shù)據(jù)的切分(Sharding)根據(jù)其切分規(guī)則的類型,可以分為兩種切分模式。一種是按照不同的表(或者Schema)來切分到不同的數(shù)據(jù)庫(主機(jī))之上,這種切可以稱之為數(shù)據(jù)的垂直(縱向)切分;另外一種則是根據(jù)表中的數(shù)據(jù)的邏輯關(guān)系,將同一個(gè)表中的
數(shù)據(jù)按照某種條件拆分到多臺(tái)數(shù)據(jù)庫(主機(jī))上面,這種切分稱之為數(shù)據(jù)的水平(橫向)切分。
垂直切分
一個(gè)數(shù)據(jù)庫由很多表的構(gòu)成,每個(gè)表對(duì)應(yīng)著不同的業(yè)務(wù),垂直切分是指按照業(yè)務(wù)將表進(jìn)行分類,分布到不同的數(shù)據(jù)庫上面,這樣也就將數(shù)據(jù)或者說壓力分擔(dān)到不同的庫上面, 如下圖:
垂直切分的優(yōu)缺點(diǎn)介紹:
優(yōu)點(diǎn):
拆分后業(yè)務(wù)清晰,拆分規(guī)則明確。
系統(tǒng)之間整合或擴(kuò)展容易。
數(shù)據(jù)維護(hù)簡單。
缺點(diǎn):
部分業(yè)務(wù)表無法join,只能通過接口方式解決,提高了系統(tǒng)復(fù)雜度。
受每種業(yè)務(wù)不同的限制存在單庫性能瓶頸,不易數(shù)據(jù)擴(kuò)展跟性能提高。
事務(wù)處理復(fù)雜。
由于垂直切分是按照業(yè)務(wù)的分類將表分散到不同的庫,所以有些業(yè)務(wù)表會(huì)過于龐大,存在單庫讀寫與存儲(chǔ)瓶頸,所以就需要水平
拆分來做解決。
水平切分
相對(duì)于垂直拆分,水平拆分不是將表做分類,而是按照某個(gè)字段的某種規(guī)則來分散到多個(gè)庫之中,每個(gè)表中包含一部分?jǐn)?shù)據(jù)。簡單來說,我們可以將數(shù)據(jù)的水平切分理解為是按照數(shù)據(jù)行的切分,就是將表中的某些行切分到一個(gè)數(shù)據(jù)庫,而另外的某些行又切
分到其他的數(shù)據(jù)庫中,如下圖:
水平切分的優(yōu)缺點(diǎn)介紹:
拆分規(guī)則抽象好,join操作基本可以數(shù)據(jù)庫做。
不存在單庫大數(shù)據(jù),高并發(fā)的性能瓶頸。
應(yīng)用端改造較少。
提高了系統(tǒng)的穩(wěn)定性跟負(fù)載能力。
拆分規(guī)則難以抽象。
分片事務(wù)一致性難以解決。
數(shù)據(jù)多次擴(kuò)展難度跟維護(hù)量極大。
跨庫join性能較差。
垂直切分和水平切分共同的特點(diǎn)和缺點(diǎn)有:
引入分布式事務(wù)的問題。
跨節(jié)點(diǎn)Join的問題。
跨節(jié)點(diǎn)合并排序分頁問題。
多數(shù)據(jù)源管理問題。