業務的拆分:
隨著業務系統的擴大,系統變得越來越複雜,越來越難以維護,開發效率變得越來越低,並且對資源的消耗也變得越來越大,通過硬體提高系統效能的方式帶來的成本也越來越高。
電商平台,包含了使用者、商品、評價、訂單等幾大模組,最簡單的做法就是在乙個資料庫中分別建立users、shops、comment、order四張表。
隨著業務規模的增大,訪問量增大,我們不得不對業務進行拆分。每乙個模組都使用單獨的資料來進行儲存,不同的業務訪問不同的資料庫,將原本對乙個資料庫的依賴拆分4個資料庫的依賴,這樣的話就變成了4個資料庫同時承擔壓力,系統吞吐量自然就提高了。
分表的實現:
對於大部分資料庫的設計和業務的操作基本都與使用者的id相關,因此使用使用者id是最常用的分庫的路由策略。使用者的id可以作為貫穿整個系統用的重要字段。因此,使用使用者的id我們不僅可以方便我們的查詢,還可以將資料平均分配到不同的資料庫中。假設有100張表進行儲存,則我們在進行儲存資料的時候,首先對使用者id進行取模操作,根據user_id%100獲取對應的表進行儲存查詢操作
分庫的操作:
資料庫分表能夠解決單錶資料量很大的時候資料查詢的效率問題,但是無法給資料庫的併發操作帶來效率上的提高,因為分表的實質還是在乙個數庫上進行的操作,很容易受資料庫io效能的限制。因此,如何將資料庫io效能的問題平均分配出來,很顯然將資料進行分庫操作可以很好地解決單台資料庫的效能問題。分庫策略與分表策略的實現很相似,最簡單的都是可以通過取模的方式進行路由。將使用者id進行取模操作,這樣的話獲取到具體的某乙個資料庫
資料庫分庫分表
1 基本思想之什麼是分庫分表?從字面上簡單理解,就是把原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存到多個表上。2 基本思想之為什麼要分庫分表?資料庫中的資料量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業務的發展,庫中的表會越來越多,表中的資料量也會越來越大,相...
資料庫分庫 分表
分庫的優點是 實現簡單,庫與庫之間界限分明,便於維護,缺點是不利於頻繁跨庫操作,單錶資料量大的問題解決不了。分表的優點是 能解決分庫的不足點,但是缺點卻恰恰是分庫的優點,分表實現起來比較複雜,特別是分表規則的劃分,程式的編寫,以及後期的 資料庫拆分移植維護。實際應用中,一般網際網路企業的路線都是先分...
資料庫分庫分表
簡單了解資料庫分庫分表,以及資料庫的分片 什麼是分庫分表 原本儲存於乙個庫的資料分塊儲存到多個庫上,把原本儲存於乙個表的資料分塊儲存在到多個表上 為什麼分庫分表 當一張表的資料達到幾千萬時,你查詢一次所花的時間會變多,如果有聯合查詢的花,我想啃根會死在那。分表的目的就在於此,減少資料庫的負擔,縮短查...