為什麼要庫分表?
當使用者量增漲到一定程度,單機資料庫已經沒法滿足需求(sql已經沒辦法解決),就需要分布式來分解我們資料庫壓力。
資料庫分布的進化過程
分庫分表中介軟體
讀寫分離:部署乙個master和多個salve庫。master只負責增,刪,改。salve負責查詢。工具-amoeba
垂直分割槽:雖然讀寫分離了,但資料量增大難免還是會慢。在讀寫分離的基礎上我們將資料庫不同業務表拆分到不同庫里。(將訂單相關的表放到乙個庫里,將使用者相關的表存到另乙個庫里)這樣就解決了乙個資料庫過大的情況。
水平拆分:將乙個表拆分成多個子表。比如說將乙個有10000條的user表,拆分成10個表,10個表承擔壓力。當然這個拆分是通過某種契約按段位進行資料儲存。
阿里雲的將每個rds分了8個子庫。
阿里雲官方文件:購買的時候一定要看好分割槽
drds建立新資料庫時,不會影響rds已經存在的資料庫。
drds的前身是**的tddl(github已經多年沒有更新過了)
大家有興趣可以看下原始碼:drds事務使用二階段提交來保證原子性和一致性
tddl原理—應用層連線多個資料來源,中間有乙個叫做dbroute的技術對資料庫進行統一的路由訪問。dbroute對資料進行多庫的操作、資料的整合,讓應用層像操作乙個資料來源一樣操作多個資料庫。資料放置按照一定的規則進行計算和路由,從而達到分散到多個 rds上。當然路由健也可以跟據自己定義的外來鍵。
資料庫分庫分表
1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...
資料庫分庫 分表
分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...
資料庫分庫分表
簡單了解資料庫分庫分表,以及資料庫的分片 什麼是分庫分表 原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存在到多個表上 為什麼分庫分表 當一張表的資料達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的花,我想啃根會死在那。分表的目的就在於此,減少資料庫的負擔,縮短查...