mysql架構演變過程

2021-07-31 17:05:01 字數 2074 閱讀 1626

我們小組研究的是mysql,今天由小帥給大家分享我們組的研究成功,我沒有做什麼突出貢獻,主要的技術點都是小帥沒日沒夜研究的,我也就幫忙做了個背景介紹,今天先總結一下mysql的架構之路,明天我也好好的研究一下主從複製什麼的,爭取在貢獻一篇部落格給大家參考~~~

mysql是由原mysql ab公司自主研發的,是目前it行業最流行的開放源**的資料庫管理系統,同時它也是乙個支援多執行緒高併發多使用者的關係型資料庫管理系統。

其實這三點也是mysql資料庫在發展過程中一直追求的三項原則,我們一一來看,第一項是簡單,首先他的安裝檔案特別的小,開啟安裝檔案直接下一步就能成功,建立資料庫的過程也非常簡單,一般的sql語句都可以搞定,所以說他操作起來非常簡單,不像一般大型商業資料庫管理系統(oracle,db2等等),安裝包動輒都跟個作業系統那麼大似的

第二點可靠性,根據權威的第三方評測機構多次測試各種資料庫的tpcc值,mysql一直都有非常優異的表現,而且在其他所有商用的通用資料庫管理系統中,僅僅有oracle資料庫能夠與其一較高下

第三點高效,mysql一直奉行的乙個原則就是保證足夠穩定的前提下,效能的地位是在功能之前的,也就是說他的第一考慮要素是效能,在滿足客戶的99%的需求下,剩餘的精力用來提高系統的效能

為什麼會有架構的演變過程?一般是一種架構在使用過程中,會遇到瓶頸,這時候我們就需要對資料庫進行擴充套件,讓他能承受更多的資料,所以不同的擴充套件就有了不同的資料庫架構,擴充套件分為縱向和橫向兩種方式:

如果公司有經濟實力,完全可以買處理能力更高的伺服器,多買一些,來解決瓶頸問題,但是這樣不適合大部分的公司,小公司還是通過更牛的技術實現更多資料量的訪問,這就是我們所說的橫向增加節點,這才是這一領域解決問題的王道

接下來我們就來看一下,mysql架構是如何一步步進化打怪的~

簡單小型**或者應用背後的架構可以非常簡單,資料儲存只需要乙個mysql instance,一般會把所有的資訊存到乙個database instance裡面

瓶頸:

1.資料量,乙個機器放不下時

2.資料的索引,放不下

3.訪問了(讀寫混合)承受不了

什麼是垂直?就是從業務角度來看,將關聯性不強的資料拆分到不同的instance上,從而達到消除瓶頸

例子:將使用者資訊資料和業務資料拆分到不同的三個例項上,對於重複讀型別比較多的場景,我們還可以加一層cache來減少對db的壓力

瓶頸:單例項單業務

解決v2.0架構下的讀問題,通過給instance掛資料實時備份的思路來遷移讀取的壓力,在mysql的場景下就是通過主從結構,主庫抗寫壓力,通過從庫來分擔讀多的壓力

對於v2.0 v3.0方案遇到瓶頸時,都可以通過水平拆分來解決,水平拆分和垂直拆分有較大區別,垂直拆分拆完的結果,在乙個例項上是擁有全量資料的,而水平拆分之後,任何例項都只有全量的1/n的資料,以下圖userinfo的拆分為例,將userinfo拆分為3個cluster,每個cluster持有總量的1/3資料,3個cluster資料的總和等於乙份完整資料(注:這裡不再叫單個例項 而是叫乙個cluster 代表包含主從的乙個小mysql集群)

今天小帥說的一句話印象深刻,他說什麼問題都可以通過第四種架構解決,其實這種思想很簡單,最開始是乙個資料庫,如果業務邏輯非常複雜,那麼就多加幾個資料庫,就像我們的itoo,評教自己乙個庫,新生自己乙個庫,自己負責自己的就好了,如果評教自己的這個庫壓力過大,那麼就先建立主從資料庫,緩解一下壓力,還是有瓶頸,就把乙個例項的資料庫搭建成集群,每乙個伺服器上分擔一部分資料,每乙個集群上都是乙個主從的資料庫,這樣就可以完美解決資料庫瓶頸的問題了

網路架構及其演變過程

目錄三 bs架構 四 cs架構和bs架構區別 python從入門到放棄完整教程目錄 應用領域 應用領域 計算機發展初期使用者去取資料,直接就去主機拿,從這裡開始就分出了客戶端和服務端。客戶端 使用者安裝的軟體 服務端 統一管理資料庫的主機中的軟體就叫做服務端,再後來服務端不只是管理資料,外加處理業務...

網路架構及其演變過程

應用領域 應用領域 計算機發展初期使用者去取資料,直接就去主機拿,從這裡開始就分出了客戶端和服務端。客戶端 使用者安裝的軟體 服務端 統一管理資料庫的主機中的軟體就叫做服務端,再後來服務端不只是管理資料,外加處理業務邏輯。答 應用領域 統一客戶端即預設安裝使用者電腦中的瀏覽器,訪問同種類的 具體業務...

網路架構及其演變過程

應用領域 應用領域 計算機發展初期使用者去取資料,直接就去主機拿,從這裡開始就分出了客戶端和服務端。客戶端 使用者安裝的軟體 服務端 統一管理資料庫的主機中的軟體就叫做服務端,再後來服務端不只是管理資料,外加處理業務邏輯。使用者作業系統安裝客戶端 產商作業系統部署服務端 每個使用者需要獨立安裝軟體 ...