資料庫結構演變

2021-07-26 20:54:41 字數 1342 閱讀 6792

以電商**為例,在**建立之初,日均訪問量可能只有幾百到幾千人,這時整個業務後台可能就乙個資料庫,所有業務表都放在這個資料庫中,一台普通的伺服器就可以支撐,而且這種架構對業務開發人員也非常友好,因為所有的表都在乙個庫中,這樣查詢語句就可以靈活關聯了,使用起來很便捷。

圖1 所有業務表都在乙個資料庫中

但是隨著業務的不斷發展,每天訪問**的人越來越多,資料庫的壓力也越來越大。通過分析發現,所有的訪問流量中,80%以上都是讀流量,只有20%左右的寫流量,這時可以通過讀寫分離來緩解資料庫的訪問壓力。

圖2 讀寫分離

由於**的訪問量越來越大,儘管採取了讀寫分離的方式,但隨著資料庫的壓力繼續增加,資料庫的瓶頸越來越突出。這時我們發現,我們的**演進到現在,交易、商品、使用者的資料都還在同乙個資料庫中。然而在這個巨大而且臃腫的資料庫中,表和表之間的資料很多是沒有關係的,也不需要join操作,理論上就應該把它們分別放到不同的伺服器,即垂直分庫。

圖3 垂直分庫

隨著業務的不斷增長,我們發現交易、商品、使用者這些庫都變得巨大無比,單機資料庫已經無法滿足業務的繼續增長,這時可以考慮對這些表進行水平拆分,即同乙個表中的資料拆分到兩個甚至多個資料庫中。以使用者表為例,資料可以根據userid的奇偶來確定資料的劃分。把id為奇數的放到db1,為偶數的放db2。

圖4 水平分表

配置複雜

基於開源中介軟體對一張大表進行水平拆分需要以下六步操作:

部署資料庫節點

安裝和部署中介軟體軟體(多個)

登入到各資料庫節點,建立子表

把子表的資訊,配置到每個中介軟體的配置檔案,然後啟動

用haproxy等負載均衡收斂中介軟體ip,對外提供乙個ip

業務正式訪問

運維極其不便

基於開源中介軟體對系統進行擴容需要進行以下幾步:

圖5 開源中介軟體系統擴容

開源中介軟體使用和運維的複雜性給業務發展造成了非常大的壓力,無形中為企業發展帶來了很大的負擔。

資料庫的演變史

目錄二 資料庫的演變方向 三 資料庫基本概念 四 軟體開發架構 五 資料庫的分類 兩大類 六 sql語句的由來 七 資料庫的本質 一 資料庫演變史 1.什麼是資料庫?1 顧名思義,資料庫 db,database 是按照資料結構來組織 儲存和管理資料的 倉庫 2 資料庫指的是以一定方式儲存在一起 能為...

資料庫技術演變與發展

隨著資訊科技的發展,採用兩維表結構的資料庫,已經無法儲存大量的多 非結構化複雜資料,以及各類資料之間的關係。關係型資料庫亟待突破。資訊科技平台的選擇常常是建立或重新建立應用系統時的關鍵問題,而資料庫正是其中需要做出選擇的關鍵平台。關聯式資料庫管理系統曾處於技術主流而獨領 但是這種傳統的資料庫管理系統...

資料庫資料結構

資料結構 數字型別 tinyint 1 byte 128,127 0,255 小整數值 smallint 2 bytes 32 768,32 767 0,65 535 大整數值 mediumint 3 bytes 8 388 608,8 388 607 0,16 777 215 大整數值 int或i...