真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分庫(kù)、分表概念

相信大部分人都不太了解數(shù)據(jù)庫(kù)中的讀寫(xiě)分離、分庫(kù)和分表,今天小編為了讓大家更加了解讀寫(xiě)分離、分庫(kù)和分表,給大家總結(jié)了以下內(nèi)容,跟隨小編一起來(lái)看看吧。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)上黨免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

1. 前言

相信你經(jīng)常被 讀寫(xiě)分離、垂直拆分、水平拆分、分庫(kù)分表 這幾個(gè)名詞搞得很懵逼。我有時(shí)候也很懵逼,那么今天就來(lái)把這幾個(gè)數(shù)據(jù)庫(kù)常用術(shù)語(yǔ)搞清楚,同時(shí)也記錄一下。

2. 讀寫(xiě)分離

這個(gè)相對(duì)比較好理解一些,就是將數(shù)據(jù)庫(kù)分為主從庫(kù),一個(gè)主庫(kù)(Master)用于寫(xiě)數(shù)據(jù),多個(gè)從庫(kù)(Slaver)進(jìn)行輪詢(xún)讀取數(shù)據(jù)的過(guò)程,主從庫(kù)之間通過(guò)某種通訊機(jī)制進(jìn)行數(shù)據(jù)的同步,是一種常見(jiàn)的數(shù)據(jù)庫(kù)架構(gòu)。下面這張圖就展示了 “一主二從” 的結(jié)構(gòu):

數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分庫(kù)、分表概念

2.1 為什么要讀寫(xiě)分離

大多數(shù)互聯(lián)網(wǎng)數(shù)據(jù)操作往往都是讀多寫(xiě)少,隨著數(shù)據(jù)的增長(zhǎng),數(shù)據(jù)庫(kù)的“讀”會(huì)首先成為瓶頸。如果我們希望能線(xiàn)性地提升數(shù)據(jù)庫(kù)的讀性能和寫(xiě)性能,就需要讓讀寫(xiě)盡可能的不相互影響,各自為政。在使用讀寫(xiě)分離之前我們應(yīng)該考慮使用緩存能不能解決問(wèn)題。然后再考慮對(duì)數(shù)據(jù)庫(kù)按照 “讀” 和 “寫(xiě)” 進(jìn)行分組。讀寫(xiě)分離意味著將一體的結(jié)構(gòu)的進(jìn)行分散,在數(shù)據(jù)量大、高并發(fā)的情景中要考慮以下這些問(wèn)題

  1. 如何保證 Master 的高可用,故障轉(zhuǎn)移,熔斷限流等。

  2. 讀寫(xiě)操作的區(qū)分規(guī)則,代碼層面如何處理好讀命令和寫(xiě)命令,盡量無(wú)感知無(wú)業(yè)務(wù)***。

  3. 數(shù)據(jù)一致性的容忍度。雖然是數(shù)據(jù)同步,但是由于網(wǎng)絡(luò)的不確定性這仍然是一個(gè)不可忽視的問(wèn)題。

3. 分庫(kù)

數(shù)據(jù)庫(kù)垂直拆分、數(shù)據(jù)庫(kù)水平拆分 統(tǒng)稱(chēng) 分庫(kù)。是指按照特定的條條件和維度,將同一個(gè)數(shù)據(jù)庫(kù)中的數(shù)據(jù)拆分到多個(gè)數(shù)據(jù)庫(kù)(主機(jī))上面以達(dá)到分散單庫(kù)(主機(jī))負(fù)載的效果。這樣我們變相地降低了數(shù)據(jù)集的大小,以空間換時(shí)間來(lái)提升性能。

3.1 數(shù)據(jù)庫(kù)垂直拆分

數(shù)據(jù)庫(kù)垂直拆分 指的是按照業(yè)務(wù)對(duì)數(shù)據(jù)庫(kù)中的表進(jìn)行分組,同組的放到一個(gè)新的數(shù)據(jù)庫(kù)(邏輯上,并非實(shí)例)中。需要從實(shí)際業(yè)務(wù)出發(fā)將大業(yè)務(wù)分割成小業(yè)務(wù)。比如商城的整個(gè)業(yè)務(wù)中的 用戶(hù)相關(guān)表,訂單相關(guān)表,物流相關(guān)表 各自獨(dú)立分類(lèi)形成 用戶(hù)系統(tǒng)數(shù)據(jù)庫(kù),訂單系統(tǒng)數(shù)據(jù)庫(kù),物流系統(tǒng)數(shù)據(jù)庫(kù) 如下圖:

數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分庫(kù)、分表概念

這樣帶來(lái)了一些好處: (a)業(yè)務(wù)清晰,職責(zé)單一 (b)易維護(hù),易擴(kuò)展 (c)數(shù)據(jù)服務(wù)化 。 同時(shí)也有一些負(fù)面的作用:(a)提高了整個(gè)應(yīng)用的復(fù)雜度,而且會(huì)形成跨庫(kù)事務(wù) (b)引發(fā) “木桶效應(yīng)”,任何一個(gè)短板有可能影響整個(gè)系統(tǒng) (c)部分表關(guān)系不能 join 只能通過(guò)服務(wù)相互調(diào)用來(lái)維系。甚至由于網(wǎng)絡(luò)問(wèn)題引發(fā)數(shù)據(jù)不一致。

在需要進(jìn)行分庫(kù)的情況下,通??蓛?yōu)先考慮垂直拆分。

3.2 數(shù)據(jù)庫(kù)水平拆分

在數(shù)據(jù)庫(kù)垂直拆分后遇到單機(jī)數(shù)據(jù)庫(kù)性能瓶頸之后,就可以考慮數(shù)據(jù)庫(kù)水平拆分了。 之所以先垂直拆分才水平拆分,是因?yàn)榇怪辈鸱趾髷?shù)據(jù)業(yè)務(wù)清晰而且單一,更加方便指定水平的標(biāo)準(zhǔn)。比如我們對(duì)商城業(yè)務(wù)垂直拆分后的 用戶(hù)系統(tǒng) 進(jìn)行水平拆分就比對(duì)整個(gè)商城業(yè)務(wù)進(jìn)行水平拆分好找維度,我們可以根據(jù)用戶(hù)注冊(cè)時(shí)間的區(qū)間、用戶(hù)的區(qū)域或者用戶(hù) ID 的范圍、 hash 等條件,然后關(guān)聯(lián)相關(guān)表的記錄將數(shù)據(jù)進(jìn)行拆分,如果放在整個(gè)商城業(yè)務(wù)上你是以用戶(hù)為準(zhǔn)還是以訂單為準(zhǔn)都不太好考慮。

我們按照每100萬(wàn)為區(qū)間對(duì)用戶(hù)系統(tǒng)水平拆分如下:

數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分庫(kù)、分表概念

這種拆分的好處在于: (a)單個(gè)庫(kù)的容量可控 (b)單挑記錄保證了數(shù)據(jù)完整性 (c)數(shù)據(jù)關(guān)系可以通過(guò) join 維持 (d) 避免了跨庫(kù)事務(wù) ;缺點(diǎn)同樣存在:(a)拆分規(guī)則對(duì)編碼有一定的影響 (b)不同業(yè)務(wù)的分區(qū)交互需要統(tǒng)籌設(shè)計(jì)

4. 分表

分表也分為 數(shù)據(jù)表垂直拆分 和 數(shù)據(jù)表水平拆分 。

4.1 數(shù)據(jù)表垂直拆分

數(shù)據(jù)表垂直拆分就是縱向地把表中的列分成多個(gè)表,把表從“寬”變“窄”。一般遵循以下幾個(gè)點(diǎn)進(jìn)行拆分:

  • 冷熱分離,把常用的列放在一個(gè)表,不常用的放在一個(gè)表。

  • 大字段列獨(dú)立存放

  • 關(guān)聯(lián)關(guān)系的列緊密的放在一起

我們把用戶(hù)表中常用的和不常用的而且大字段分離成兩張表:

數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分庫(kù)、分表概念

4.2 數(shù)據(jù)表的水平拆分

表的水平拆分感覺(jué)跟庫(kù)的水平拆分思想上都是一樣的,只不過(guò)粒度不同。表結(jié)構(gòu)維持不變。也就是說(shuō)拆分后數(shù)據(jù)集的并集等于拆分前的數(shù)據(jù)集。理解了 3.2 章節(jié) 之后這個(gè)就沒(méi)有什么可說(shuō)的了。

看完上述內(nèi)容,你們對(duì)讀寫(xiě)分離、分庫(kù)和分表有進(jìn)一步的了解嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀。


網(wǎng)頁(yè)題目:數(shù)據(jù)庫(kù)的讀寫(xiě)分離、分庫(kù)、分表概念
本文來(lái)源:http://weahome.cn/article/jphgpc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部